Java 10: 70+ API dan Fitur Baru Dijelaskan
Rilis JDK 10 telah menambahkan 70+ API dan Opsi baru ke pustaka Java. Berikut adalah beberapa peningkatan penting yang diperkenalkan.
Metode Optional.orElseThrow()
Metode baru orElseThrow() tersedia dalam kelas java.util.Optional yang kini merupakan alternatif yang diinginkan untuk metode get().
API untuk Membuat Koleksi Tidak Dapat Dimodifikasi
Metode baru copyOf() tersedia dalam antarmuka List, Set, dan Map yang dapat membuat instance koleksi baru dari yang ada. Kelas Collector memiliki metode baru toUnmodifiableList(), toUnmodifiableSet(), dan toUnmodifiableMap() untuk mendapatkan elemen dari stream ke dalam koleksi yang tidak dapat dimodifikasi.
Menonaktifkan Pelacakan Penggunaan Terakhir JRE
Flag baru diperkenalkan jdk.disableLastUsageTracking yang menonaktifkan pelacakan penggunaan terakhir JRE untuk VM yang berjalan.
Kata Sandi Di-Hash
Kata sandi teks biasa yang tersedia dalam berkas jmxremote.password kini ditimpa dengan hash SHA3-512 oleh agen JMX.
Dukungan javadoc untuk Beberapa Stylesheet
Opsi baru tersedia untuk perintah javadoc sebagai --add-stylesheet. Opsi ini mendukung penggunaan beberapa stylesheet dalam dokumentasi yang dihasilkan.
Dukungan javadoc untuk Metode yang Diganti
Opsi baru tersedia untuk perintah javadoc sebagai --overridden-methods=value. Banyak kelas mengganti metode yang diwarisi tetapi tidak mengubah spesifikasi. Opsi --overridden-methods=value memungkinkan untuk mengelompokkan metode ini dengan metode yang diwarisi lainnya, alih-alih mendokumentasikannya lagi secara terpisah.
Dukungan javadoc untuk Ringkasan
Tag inline baru, {@summary ...}, tersedia untuk menentukan teks yang akan digunakan sebagai ringkasan dari deskripsi API. Secara default, ringkasan dari deskripsi API disimpulkan dari kalimat pertama.
Contoh
Program berikut menunjukkan penggunaan beberapa API baru dalam JAVA 10.
import java.util.List; import java.util.stream.Collectors; public class Tester { public static void main(String[] args) { var ids = List.of(1, 2, 3, 4, 5); try { // get an unmodifiable list List<Integer> copyOfIds = List.copyOf(ids); copyOfIds.add(6); } catch(UnsupportedOperationException e){ System.out.println("Collection is not modifiable."); } try{ // get an unmodifiable list List<Integer> evenNumbers = ids.stream() .filter(i -> i % 2 == 0) .collect(Collectors.toUnmodifiableList());; evenNumbers.add(6); }catch(UnsupportedOperationException e){ System.out.println("Collection is not modifiable."); } } } Output
Ini akan mencetak output berikut.
Collection is not modifiable. Collection is not modifiable.