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