Rumah  >  Soal Jawab  >  teks badan

Bagaimana pemalar ditakrifkan dalam java.

public class EnumDome {

    public static final String SUCCESS = "Y";

    public static final String FAIL = "N";

    enum State{

        SUCCESS("Y"),
        FAIL("N");

        private final String state;

        State(String state){
            this.state = state;
        }

        public String getState(){
            return state;
        }
    }
}

Apakah ciri-ciri kedua-dua cara mentakrifkan pemalar ini? Kaedah manakah yang lebih disyorkan semasa digunakan?

我想大声告诉你我想大声告诉你2710 hari yang lalu943

membalas semua(2)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-12 09:21:32

    Soalan ini, dari peringkat tatabahasa, tidak mempunyai suspen. Hanya Baidu perbezaan antara pemalar dan penghitungan.

    Tetapi dari perspektif reka bentuk, "enum" lebih baik daripada "statik akhir".

    Ini mungkin agak abstrak Biar saya berikan anda contoh: Sebagai contoh, saya mentakrifkan fungsi awam (lebih tepat, kaedah awam) yang dipanggil setResponseState

    .

    Satu ditakrifkan seperti ini: setResponseState(Keadaan rentetan) { ... }, menggunakan rentetan sebagai parameter.

    Satu ditakrifkan seperti ini: setResponseState(EnumDemo.State state) { ... }, menggunakan penghitungan sebagai parameter.

    Untuk definisi pertama, kaedah panggilan yang betul ialah: setResponseState(EnumDemo.SUCCESS);

    Tetapi jika anda memanggilnya seperti ini: setResponseState("abcd"); adakah tiada masalah dengan sintaks bahasa JAVA?

    Pengkompil masih boleh menghantarnya di sini...tetapi ia mungkin menyebabkan ralat yang serius semasa masa jalanan dan mengurangkan kebolehpercayaan sistem.

    Masalah terbesar di sini ialah "parameter fungsi tidak cukup jelas", yang akan menyebabkan masalah kepada pembangun yang menggunakan kaedah ini. Dia terpaksa kembali dan menyemak kod sumber saya untuk akhirnya menentukan parameter apa yang perlu dihantar kepada saya...

    Dan jika saya merangkum fungsi (kaedah) ini ke dalam satu set kod rangka kerja dan tidak memberikan kod sumber, ia akan menjadi lebih sukar bagi pembangun untuk menyemak semula. Ini akan mengurangkan kecekapan pembangunan.

    Kaedah definisi menggunakan setResponseState(EnumDemo.State state) { ... } adalah sangat jelas. Sama ada BERJAYA, GAGAL atau batal.

    Pembangun hampir tidak akan membuat kesilapan apabila memanggil fungsi ini (kaedah), dan tidak perlu menyemak kod sumber sama sekali.

    Jadi pendekatan yang lebih ketat ialah menggunakan penghitungan. Sudah tentu ini adalah apabila mentakrifkan fungsi awam (kaedah).

    Dan jika setResponseState ialah fungsi peribadi (kaedah), maka anda boleh menjadi lebih santai dan menggunakan parameter rentetan. "Kekurangan ketegasan" ini hanya perlu didedahkan secara dalaman.

    Untuk menjadi lebih mengagumkan, kita perlu tampil sangat profesional secara luaran, tetapi secara dalaman, kita boleh merendahkan sedikit standard kita.

    Ini adalah dua senario aplikasi pemalar dan penghitungan yang berbeza saya harap ia akan membantu anda...

    balas
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:21:32

    Ringkasnya:
    Hanya static final ialah satu cara untuk menentukan pemalar. Yang terakhir tidak, tetapi fungsinya serupa. Yang mana satu untuk digunakan bergantung pada keperluan anda

    Secara mendalam:
    Alamat pos:

    Pengenalan kepada penggunaan jenis Enum dalam bahasa Java
    Pengenalan kepada jenis enumerasi Java (enum)

    balas
    0
  • Batalbalas