Java:使用类型参数访问私有构造函数
2022-08-31 12:02:38
这是关于java私有构造函数的问题的后续。
假设我有以下类:
class Foo<T>
{
private T arg;
private Foo(T t) {
// private!
this.arg = t;
}
@Override
public String toString() {
return "My argument is: " + arg;
}
}
如何构造 using 反射?new Foo("hello")
答
根据jtahlborn的回答,以下工作:
public class Example {
public static void main(final String[] args) throws Exception {
Constructor<Foo> constructor;
constructor = Foo.class.getDeclaredConstructor(Object.class);
constructor.setAccessible(true);
Foo<String> foo = constructor.newInstance("arg1");
System.out.println(foo);
}
}