【发布时间】:2014-11-22 04:14:25
【问题描述】:
我想知道如何创建某个类的新对象,如果我将该类名保存在字符串中。
例如。我想创建一个 FooClass 的对象会是这样的:
String className = "FooClass";
className.toClass() newObject = new (className.toClass())();
我已经做了很多搜索,但无法找到答案。
谢谢
【问题讨论】:
-
这称为反射。
-
但是,如果不使用适当的统一接口(或超类型,如果您仍然相信子类型/LSP 多态性),这并不是很有用。否则你只会得到一个玩起来真的很蹩脚的 Object - 要“用作”创建的类型,Object 表达式必须要么本身用于更多反射(不好玩),要么 cast 到适当的类型(这在很大程度上可以追溯到原始问题)。表达式类型(包括变量)必须在编译期间解析。泛型和接口可以提供帮助。
标签: java class reflection