java意外的“瞬态”构造函数修饰符
我在进行反思时发现了一件有趣的事情。我试图检索简单类的构造函数及其修饰符
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)或参数类型(primitive或reference),都会发生同样的情况。这怎么可能,而“transient”不是构造函数的有效修饰符
共 (0) 个答案