お知らせ
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のアップデートは、大きな範囲でリリースされています。
このほかの機能についても、いろいろ試してみてはいかがでしょうか。