Sorotan Fitur Java 10: Menguasai Local Variable Type Inference
JEP 286 − Local Variable Type Inference
Local Variable Type Inference adalah salah satu perubahan paling jelas pada bahasa yang tersedia dari Java 10 ke depan. Ini memungkinkan untuk mendefinisikan variabel menggunakan var dan tanpa menentukan tipenya. Kompiler menyimpulkan tipe variabel menggunakan nilai yang disediakan. Type inference ini terbatas pada variabel lokal.
Cara lama mendeklarasikan variabel lokal.
String name = "Welcome to tutorialspoint.com";
Cara baru mendeklarasikan variabel lokal.
var name = "Welcome to tutorialspoint.com";
Sekarang kompiler menyimpulkan tipe variabel name sebagai String dengan memeriksa nilai yang disediakan.
Poin Penting
Tidak ada type inference dalam hal variabel anggota, parameter metode, nilai kembali.
Variabel lokal harus diinisialisasi saat deklarasi sebaliknya kompiler tidak akan menyimpulkan dan akan melempar error.
Local variable inference tersedia di dalam blok inisialisasi pernyataan loop.
Tidak ada overhead runtime. Karena kompiler menyimpulkan tipe berdasarkan nilai yang disediakan, tidak ada kerugian performa.
Tid ada perubahan tipe dinamis. Setelah tipe variabel lokal disimpulkan, tidak dapat diubah.
Kode boilerplate yang kompleks dapat dikurangi menggunakan local variable type inference.
Map<Integer, String> mapNames = new HashMap<>(); var mapNames1 = new HashMap<Integer, String>();
Contoh
Program berikut menunjukkan penggunaan Local Variable Type Inference dalam JAVA 10.
import java.util.List; public class Tester { public static void main(String[] args) { var names = List.of("Julie", "Robert", "Chris", "Joseph"); for (var name : names) { System.out.println(name); } System.out.println(""); for (var i = 0; i < names.size(); i++) { System.out.println(names.get(i)); } } } Output
Ini akan mencetak output berikut.
Julie Robert Chris Joseph Julie Robert Chris Joseph