标签:
“JDK1.5”(开发代码猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型、foreach循环、自动拆装箱、枚举、可变参数、内省、静态导入等。使用这些特性有助于我们编写更加清晰,强悍,安全的代码。
1 Collection<String> c = new ArrayList<String>(); 2 c.add(new Date()); 3 //编译器会给出一个错误: 4 add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)
1 void processAll(Collection c) { 2 for(Iterator i = c.iterator();i.hasNext();) { 3 MyClass myObject = (MyClass) i.next(); 4 myObject.process(); 5 } 6 } 7 //使用foreach循环,我们可以把代码改写成: 8 void processAll(Colllection<MyClass> c) { 9 for(MyClass myObject : c) { 10 myObject.process(); 11 } 12 } 13 //这段代码要比上面清晰许多,并且避免了强制类型转换。
1 int a = 3; 2 COllection<Integer> c = new ArrayList<Integer>(); 3 c.add(a);//自动转换为Integer 4 5 Integer b = new Integer(2); 6 c.add(b+2);//这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer
1 public enum Color { 2 RED,WHITE,BLUE 3 } 4 public enum Coin { 5 6 penny(1), nickel(5), dime(10), quarter(25); 7 8 Coin(int value) { 9 this.value = value; 10 } 11 12 private final int value; 13 14 public int value() { 15 return value; 16 } 17 } 18 //然后可以这样来使用: 19 Color myColor = Color.RED; 20 //枚举类型还提供了两个有用的静态方法values()和valueOf().我们可以很方便地使用它们,例如: 21 for(Color c : Color.values()) { 22 System.out.printl(c); 23 }
1 util.write(obj1); 2 util.write(obj1,obj2); 3 util.write(obj1,obj2,obj3); 4 ...
1 public void write(Object... objs) { 2 for(Object obj : pbjs) { 3 System.out.println(obj); 4 } 5 }
1 c.getMethod("test", new Object[0]).invoke(c.newInstance(), new Object[0]); 2 //现在我们可以这样写了 3 c.getMethod("test").invoke(c.newInstance()); 4 //这样代码比原来清楚了很多
1 import static java.lang.Math.*; 2 ... 3 r = sin(PI * 2);//无需再写 r = Math.sin(Math.PI * 2); 4 不过,过度使用这个特性也会一定程度上降低代码的可读性。
标签:
原文地址:http://www.cnblogs.com/xkk112/p/4777802.html