雖然我不是 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
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2