首页上一页 1 下一页尾页 4 条记录 1/1页
Java第16章 反射 构造函数修饰符问题
发表在Java图书答疑
2016-05-31
是否精华
是
否
版块置顶:
是
否
为什么没有被修饰为private和protected的构造函数会有transient修饰符修饰,但是显示的使用transient修饰符时又提示非法修饰符?
测试代码如下:
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
public class Test {
public static void main(String[] args) {
Constructor<?>[] cons=Example.class.getDeclaredConstructors();
System.out.println("构造方法修饰符分别为:");
for(int i=0;i<cons.length;i++){
int modifier=cons[i].getModifiers();
System.out.println(Modifier.toString(modifier));
}
}
}
class Example{
private Example(){}
protected Example(String s,int i1){}
Example (int...i){}
public Example(String...str){}
// transient Example (int i){} //不可以直接显示的使用transient修饰符
}
运行结果如下:
构造方法修饰符分别为:
public transient
transient
protected
private
测试代码如下:
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
public class Test {
public static void main(String[] args) {
Constructor<?>[] cons=Example.class.getDeclaredConstructors();
System.out.println("构造方法修饰符分别为:");
for(int i=0;i<cons.length;i++){
int modifier=cons[i].getModifiers();
System.out.println(Modifier.toString(modifier));
}
}
}
class Example{
private Example(){}
protected Example(String s,int i1){}
Example (int...i){}
public Example(String...str){}
// transient Example (int i){} //不可以直接显示的使用transient修饰符
}
运行结果如下:
构造方法修饰符分别为:
public transient
transient
protected
private