Keterbatasan var
Tempat var tidak dapat digunakan
Keterbatasan var adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
var Memiliki Aturan
var memang praktis, tetapi terbatas. Fitur ini hanya berlaku untuk variabel lokal dengan penginisialisasi. Dengan mengetahui tempat yang tidak mendukungnya, Anda dapat menghindari kesalahan kompilasi yang menjengkelkan.
Hanya untuk Variabel Lokal
var hanya boleh digunakan untuk variabel lokal (di dalam metode, perulangan, dan sebagainya). Contoh di bawah ini valid karena variabelnya bersifat lokal.
public class Main {
public static void main(String[] args) {
var greeting = "OK for locals";
System.out.println(greeting);
}
}Bukan untuk Field
Anda tidak dapat menggunakan var untuk field kelas. Field harus mendeklarasikan jenis secara eksplisit. Di sini, count adalah field biasa.
public class Main {
static int count = 0;
public static void main(String[] args) {
count = 5;
System.out.println(count);
}
}Bukan untuk Parameter Metode
Parameter metode memerlukan jenis eksplisit. var tidak diizinkan dalam daftar parameter, sehingga metode ini langsung mendeklarasikan String name.
public class Main {
static void greet(String name) {
System.out.println("Hi " + name);
}
public static void main(String[] args) {
greet("Lee");
}
}Bukan untuk Jenis Pengembalian
Jenis pengembalian metode tidak boleh berupa var; jenisnya harus ditulis secara eksplisit. Kompilator tidak menginferensikan jenis pengembalian.
public class Main {
static int square(int x) {
return x * x;
}
public static void main(String[] args) {
System.out.println(square(6));
}
}Harus Memiliki Penginisialisasi
Anda tidak dapat menulis var x; tanpa nilai. Tanpa penginisialisasi, kompilator tidak memiliki dasar untuk melakukan inferensi. Selalu berikan nilai saat deklarasi.
public class Main {
public static void main(String[] args) {
var ready = true;
System.out.println(ready);
}
}Tanpa Penginisialisasi null
var x = null; gagal karena null tidak memiliki jenis tertentu. Sebagai gantinya, berikan nilai yang memiliki jenis, seperti string kosong.
public class Main {
public static void main(String[] args) {
var text = "";
text = "now has a value";
System.out.println(text);
}
}Tanpa Singkatan Penginisialisasi Larik
Anda tidak dapat menulis var nums = {1, 2, 3};. Singkatan dengan kurung kurawal memerlukan jenis larik yang telah dideklarasikan. Gunakan new int[]{...} sebagai gantinya.
public class Main {
public static void main(String[] args) {
var nums = new int[]{1, 2, 3};
System.out.println(nums.length);
}
}Bukan Kata yang Dicadangkan
Menariknya, var adalah nama jenis yang dicadangkan, bukan kata kunci. Anda tetap tidak dapat menamai kelas var, tetapi aturan ini terbatas. Dalam praktiknya, perlakukan var seperti sintaks modern lainnya.
public class Main {
public static void main(String[] args) {
var var2 = "identifiers can contain var";
System.out.println(var2);
}
}Tanpa Jenis Target, Lambda Tidak Dapat Digunakan
Anda tidak dapat menetapkan lambda tanpa tipe ke var, karena lambda memerlukan jenis antarmuka fungsional target sebagai dasar inferensi. Deklarasikan jenis antarmuka tersebut secara eksplisit.
import java.util.function.IntUnaryOperator;
public class Main {
public static void main(String[] args) {
IntUnaryOperator doubler = x -> x * 2;
System.out.println(doubler.applyAsInt(21));
}
}Rangkuman Pembatasan
Ingat batasannya: hanya untuk variabel lokal, harus diinisialisasi, tidak boleh menggunakan null, tidak boleh menggunakan lambda tanpa tipe, tidak boleh menggunakan singkatan larik dengan kurung kurawal, serta tidak untuk field, parameter, atau jenis pengembalian.
public class Main {
public static void main(String[] args) {
var ok = 42;
System.out.println("var is for locals: " + ok);
}
}Pemeriksaan Singkat
Manakah dari pilihan berikut yang merupakan penggunaan var yang valid?
Rangkuman
Anda telah mempelajari keterbatasan var:
- Diizinkan hanya untuk variabel lokal dengan penginisialisasi
- Bukan untuk field, parameter, atau jenis pengembalian
- Tidak dapat melakukan inferensi dari
nullatau lambda tanpa tipe - Tidak mendukung singkatan larik dengan kurung kurawal
- Merupakan nama jenis yang dicadangkan, bukan kata kunci
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Keterbatasan var” gratis?
Ya — teks lengkap “Keterbatasan var” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Keterbatasan var”?
Tempat var tidak dapat digunakan Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Keterbatasan var” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menggunakan var untuk Lokal
- Kapan var Meningkatkan Keterbacaan
- var dalam Perulangan for
- Keterbatasan var