虽然我不是 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