黑马程序员_12月18日

----------------------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

你可能感兴趣的:(黑马程序员_12月18日)