JDK 1.5 新特性學習筆記(2)

2. 靜態導入java

靜態導入也是一個輔助性的功能加強,可以靜態導入變量方法,省略了一些冗長的代碼。靜態導入的關鍵字是import static。靜態導入時能夠使用通配符(*)數組

代碼示例:ui

import static java.lang.System.out;
import static java.util.Arrays.sort;
import static java.lang.Math.*;
import java.util.Arrays;
// .. .. ..
public static void main(String[] args) {
    int[] ints = {3, 7, 4};
    sort(ints);
    out.println(Arrays.toString(ints));
    out.println(sqrt(PI * PI));
}

注:靜態導入還能夠導入靜態內部類,這種用法不太常見,此處再也不提供代碼示例。this

 

3. 變長參數spa

變長參數(varargs)容許方法中一次接收多個一樣類型的參數,不須要將這些參數預先明肯定義出來。code

變長參數使用...標識,代碼示例:編譯器

public class Guitar {
	public Guitar(String builder, String model, String... features) {
	}

	public static void main(String... args) {
		Guitar guitar1 = new Guitar("Martin", "HD-28V", "Hot-rodded by Dan Lashbrook",
				"Fossil Ivory Nut", "Fossil Ivory Saddle", "Low-profile bridge pins");
		Guitar guitar2 = new Guitar("Bourgeois", "OMC",
				"Incredible flamed maple bindings on this one.");
		Guitar guitar3 = new Guitar("Martin", "D-18");
		String[] features = {};
		Guitar guitar4 = new Guitar("Collings", "OM-42", features);
	}
}

在類Guitar的Constructor中使用了變長參數定義:String... features。調用時能夠傳遞多個String參數,而不須要定義不一樣的Constructor。注意第三個變量的使用,只傳遞了兩個參數,即變長參數是(0..*)的概念。it

變長參數的使用有必定的限制,一個方法中只能定義一個變長參數,且此變長參數必須位於參數列表的末尾編譯

對於變長參數,Java編譯器實際將其識別爲一個對應類型的數組(示例代碼中的main方法能夠證實)。例如上邊的例子中,編譯器將String... features識別爲String[] features,能夠將其按照數組方式使用,如進行for each遍歷,或將其賦值給一個String[]類型的變量。class

相關文章
相關標籤/搜索