【发布时间】:2013-01-05 10:03:16
【问题描述】:
我在使用反射时发现了一些有趣的东西。我试图检索简单类的构造函数及其修饰符。
public class Test {
public Test(Object... args) {}
}
这是检索构造函数修饰符的代码:
Class<?> clazz = Test.class;
Constructor<?>[] ctors = clazz.getDeclaredConstructors();
for (Constructor<?> ctor : ctors) {
int mod = ctor.getModifiers();
/*if not package-private modifier*/
if(mod!=0) {
System.out.println( Modifier.toString(mod)));
}
}
结果是:
public transient
如果我传递给构造函数的不是变量参数,而是数组,没关系。
public class Test {
public Test(Object[] args) {}
}
结果是:
public
无论构造函数修饰符(public、protected、private)或参数类型(原始或引用)如何,都会发生同样的情况。怎么可能,而“瞬态”不是构造函数的有效修饰符?
【问题讨论】:
标签: java reflection jvm