Nar*_*dra 26 java oop reflection design-patterns
我正在实例化这样一个类.
myObj = (myObj) Class.forName("fully qualified class name here").newInstance();
Run Code Online (Sandbox Code Playgroud)
我怀疑的是,如果我们有一个构造函数来获取参数,我们如何像上面那样实例化它.
谢谢,
Narendra
Whi*_*g34 57
使用Class.getConstructor()并呼吁Constructor.newInstance().例如,如果这是您在类上的构造函数Foo:
public Foo(String bar, int baz) {
}
Run Code Online (Sandbox Code Playgroud)
你必须做这样的事情:
Constructor c = Class.forName("Foo").getConstructor(String.class, Integer.TYPE);
Foo foo = (Foo) c.newInstance("example", 34);
Run Code Online (Sandbox Code Playgroud)
您必须知道需要将哪些参数传递给构造函数.如果这不可取,你应该考虑使用一个空的构造函数.然后有方法来设置你通常传递给构造函数的东西.
有人可能会问你这里是否有正确的模式.你真的需要使用反射,也许有更好的方法吗?如果你知道你将要投射到你的物体,为什么不正常建造呢?您可能希望提供更多关于为什么需要执行此操作的上下文.有正当理由,但您没有说明.