雖然我不是 Java 工程師, 自己也從沒以及沒打算寫 Java ,但還是很關注這個技術。關於 Java 8 的新特性:
介面裡已經完全可以定義靜態方法了. 舉一個比較普遍的例子就是在java類庫中, 對於一些介面如Foo, 都會有一個有靜態方法的工具類Foos 來產生或者配合Foo對象執行個體來使用. 既然靜態方法可以存在於介面當中, 那麼大多數情況下 Foos工具類完全可以使用介面中的公用方法來代理 (或者將Foos置成package-private).
除此之外更重要的就是, Java 8中介面可以定義預設的方法了.舉個例子,一個for-each迴圈的方法就可以加入到java.lang.Iterable中:
public default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action); for (T t : this) {
action.accept(t);
}
}
在過去,java類庫的介面中添加方法基本上是不可能的. 在介面中添加方法意味著破壞了實現了這個介面的代碼. 但是現在, 只要能夠提供一個正確明智的預設的方法的實現, java類庫的維護者就可以在介面中添加方法.
Java 8中, 大量的預設方法已經被添加到核心的JDK介面中了。
下面是本文的重點, 在 Ubuntu 中使用 PPA 安裝 Java 8 ( 支援 Ubuntu 10.04 - Ubuntu 14.04 ):
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install Oracle-java8-installer
完成之後可以通過以下命令來查看版本:
javac -version
安裝 Java 8 需要接受許可,如果你想自動安裝,那麼可以在安裝之前運行:
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
設定 Java 8 環境變數:
sudo apt-get install oracle-java8-set-default
切換為 Java 7 :
sudo update-java-alternatives -s java-7-oracle
再切換為 Java 8:
sudo update-java-alternatives -s java-8-oracle