是否可以使用getConstructor获取下面类X的构造函数?
public class A {
}
public class Y {
}
public class X extends Y {
public X(A a, Y[] yy) {
}
public void someMethod() throws SecurityException, NoSuchMethodException {
Class<? extends Y> clazz = X.class;
Constructor<? extends Y> c =
clazz.getConstructor(new Class[]{
A.class,
/* what do I put in here for the array of Ys? */
});
}
}
由于
答案 0 :(得分:7)
您可以构建涉及数组表示法的类文字,就像使用“未修饰”类一样,即ClassName[].class
。这个文字产生“描述ClassName
实例数组的类”。在你的情况下:
clazz.getConstructor(new Class[] {
A.class,
Y[].class
});
答案 1 :(得分:6)
或更短。
Constructor<X> c = X.class.getConstructor(A.class, Y[].class);