----------------------android培训、java培训、期待与您交流! ----------------------
(1)用枚举定义交通灯:
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(30){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
},
public abstract TrafficLamp nextLamp();
private int time; //亮的时间。
private TrafficLamp(int time){this.time = time;}
}
如果枚举只有一个成员,可作为单例方式
(2)得到字节码的方式:
类名.class
对象.getClass()
Class.forName(类名)
(3)int.class与Integer.class不等
int.class与Integer.TYPE相等
(4)使用Constractor类的newInstance方法创建对象,返回值为object,
使用时需要强行转化。
(5)Field类代表某类的一个域名,而不是具体对象的成员的值。
私有成员不能用getField访问,但是可以用getDeclaredField获得,
但是依然无法访问。需要用setAccessible方法设置为可以访问。(暴力反射)
(6)字节码最好使用“==”比较
(7)使用Method调用静态方法:.invoke(null,......)
(8)invoke调用main方法时传递参数,不能直接传递String[],它会被拆开,造成参数个数的异常。
解决方法:
new Object[]{new String[]{.......}}
(Object)new String[]{......}
(9)注意:如果hashCode的计算涉及到成员的值,当加入集合(set)再后修改成员值,
可能导致删除等操作结果错误。
(10)使用类加载器加载文件:.class.getClassLoader().getResourceAsStream(Path) //path从根目录开始
或:.class.getResourceAsStream(Path) //path可以为相对路径
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima