java - Mengapa pembolehubah ahli dalam antara muka bukan pemalar?
phpcn_u1582
phpcn_u1582 2017-06-23 09:13:11
0
4
850
switch (from) {
            case TAGs.casts://constant expression required
                break;
        }
        
//我的TAGs.casts是这样的
public interface TAGs {
    String casts = String.class.getSimpleName();
}

//如果写成这个样子就可以编译
public interface TAGs {
    String casts = "String";
}

Bukankah dikatakan bahawa pembolehubah ahli dalam antara muka semuanya pemalar? Mengapa saya tidak boleh menggunakan gesaan untuk memerlukan pemalar pada kes itu?

phpcn_u1582
phpcn_u1582

membalas semua(4)
滿天的星座

Apabila menggunakan antara muka, anda mesti menetapkan nilai awal kepada pemalar Jika anda menulisnya sendiri tanpa memberikan nilai awal, ia mesti salah.

習慣沉默

Kes dalam suis perlu menentukan nilai pada masa kompilasi, dan String.class.getSimpleName();

过去多啦不再A梦

Memang. Satu diperlukan pada masa penyusunan, dan satu lagi adalah masa jalan (kaedah refleksi semuanya adalah masa jalan). Saya salah menjawabnya sebelum ini - apabila saya melihat java berkesan, ia telah diubah suai oleh statik akhir. Terdapat juga cadangan di dalamnya, sila gunakan kelas penghitungan untuk mengeksport pemalar.

大家讲道理

不是说接口中的成员变量都是常量吗请问这句话从哪里听来的?
常量需要使用static finalPengubahsuaian, dan nilai awal perlu diberikan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan