お知らせ
2023.12.5(Tue)
目次
こんにちは。ぐっさんです。
Java8がリリースされて早いもので1年過ぎました。既に触れている方もたくさんいるかと思いますが、Java8で新しくなった機能を3つ厳選して、紹介したいと思います。
今までのInterfaceであれば、インスタンス化することはできず、実装は、Implimentsしたクラスが必ず実装する必要がありました。このデフォルト実装が拡張されたことにより、インスタンス化はできないですが、Interfaceに実装することができます。
具体的にデフォルト実装の内容を、サンプルを使って、説明していきます。
public interface Service {
default String getServiceName() {
return "default service.";
}
}
public class ServiceImpl impliments Service {
}
public class Test {
public static void main(String[] args) {
Service service = new ServiceImpl();
System.out.println(service.getServiceName());
}
}Javaエンジニアには、あまり馴染みがないラムダ式ですが、ラムダ式を使うことで、複数行あるプログラムを簡潔にまとめることができます。ラムダ式を使わなくても、プログラムは書けますが、保守等でラムダ式を読まなければならないケースも出てくると思いますので、おさえておきたいところです。
ラムダ式の使用例を下記に記載します。
ラムダ式を使わないプログラム
List<Integer> list = Arrays.asList(1, 3, 2);
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return Integer.compare(o1, o2);
}
});List<Integer> list = Arrays.asList(1, 3, 2); Collections.sort(list, (o1, o2) -> Integer.compare(o1, o2));
Java8から、新たにjava.timeパッケージが導入されました。サンプルのような日付取得ができるようになります。
// 現在日時を取得 LocalDateTime localDateTime = LocalDateTime.now(); // 現在日を生成 LocalDate localDate = LocalDate.now(); // 現在時刻を生成 LocalTime localTime = LocalTime.now(); // 年月日時分まで指定して生成 LocalDateTime localDateTime = LocalDateTime.of(2015, 04, 21, 18, 5);
Java8のアップデートは、大きな範囲でリリースされています。
このほかの機能についても、いろいろ試してみてはいかがでしょうか。