jdk1.5 新特性
JDK1.5新特性
1.静态导入(import static)
import语句可以导入一个类或是某个包中的所有类。
import static 语句可以导入一个类中的某个静态方法或是所有静态方法。
例如:
Math类提供了很多于数学运算的静态方法,通常情况下我们是以Math.abs();这样的方式来进行调用函数的。但是我们可不可以只写出adb();
在JDK1.5之后,可以使用import static 语句导入一个类中的某个静态方法或是所有静态方法。这是JDK1.5的新特性之一。
例如:
import static java.lang.Math.abs;就可以直接写一个abs();函数。
import static java.lang.Math.*; 就可以直接调用Math类中的所有静态方法。
2.泛型(Generic)
在JDK1.5之前,在Java集合容器中(如:List)可以讲任何类型的对象加入到其中,此时被加入的对象被视为Object来看待。当从集合容器取出对象时,需要程序员自行保证对象类型的强制转换。如下:
这段代码中很显然List对象中的类型不匹配,但在JDK1.5之前会编译通过,运行时才会报错,这样在开发过程中很不好。所以JDK1.5引入了泛型(Generic)的概念。在看下面的代码:
泛型的引入在很大程度上避免了程序员自行保证集合容器中存取数据的强制转换。
3.For-Each循环(增强型for循环)
JDK1.5中,For-Each循环的加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。典型的代码为:
4.自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
5.枚举(Enums)
JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。如下:
之后,可以这样使用:
Gender gender = Gender.male;
也可以对枚举进行遍历,枚举类型提供了两个静态方法values()和valueOf():
6.可变参数(Varargs)
可变参数使程序员可以声明一个接受可变数目参数的方法(类似于多个方法重载,只不过是可变参数提供一个方法实现多个方法的重载,变得只是方法其中的参数)。
注意:可变参数必须是函数声明中的最后一个参数。
比如:我们编写一个简单的打印方法,以传统的方式实现方法重载:
下面使用可变参数来实现这些方法的重载:
调用方法:
Write("abc",123,new ArrayList()); // 当然其中的参数可以是任意类型,任意多个
// 这就很方便的实现了方法重载
输出:
java.lang.String
java.lang.Integer
java.util.ArrayList