Rumah >Java >javaTutorial >Perkara Elakkan rentetan di mana jenis lain lebih sesuai
1. Elakkan menggunakan rentetan sebagai pengganti untuk jenis data lain:
String direka bentuk untuk mewakili teks, tetapi sering disalahgunakan untuk mewakili nombor, enum atau struktur agregat.
Jika data berbentuk angka, gunakan jenis seperti int, float atau BigInteger, bukan String.
String age = "30"; // incorreto int age = 30; // correto
2. Rentetan adalah pengganti yang lemah untuk jenis enum:
Menggunakan enum adalah lebih selamat dan lebih mudah dibaca daripada menggunakan rentetan untuk mewakili nilai terhitung.
String status = "ACTIVE"; // incorreto Status status = Status.ACTIVE; // correto, usando enum
3. Rentetan adalah pengganti yang lebih rendah untuk jenis agregat:
Mewakili data kompleks sebagai rentetan tunggal, dipisahkan oleh pembatas, boleh menyebabkan ralat dan isu penyelenggaraan. Adalah lebih baik untuk membuat kelas untuk data ini.
Contoh salah (penggunaan rentetan untuk mewakili data agregat):
String personData = "John|Doe|30";
Contoh yang betul (penggunaan kelas):
class Person { String firstName; String lastName; int age; // Construtor e métodos adequados }
4. Rentetan sebagai pengganti sumber (Contoh: pembolehubah setempat utas):
Menggunakan rentetan untuk mengenal pasti sumber sebagai pembolehubah setempat benang boleh membawa kepada isu keselamatan dan perlanggaran nama. Gantikan dengan kunci yang lebih selamat.
Contoh yang salah (penggunaan rentetan untuk mengenal pasti pembolehubah setempat benang):
Map<String, Object> threadLocalVariables = new HashMap<>(); threadLocalVariables.put("myVariable", value);
Contoh yang betul (penggunaan kunci selamat):
class Key { // implementação da chave } Map<Key, Object> threadLocalVariables = new HashMap<>(); Key key = new Key(); threadLocalVariables.put(key, value);
Penggunaan ThreadLocal yang betul:
Reka bentuk yang ideal untuk pembolehubah tempatan utas melibatkan penggunaan ThreadLocal, yang membolehkan penciptaan pembolehubah yang dikaitkan dengan setiap urutan dengan cara yang selamat jenis.
Contoh penggunaan ThreadLocal yang betul:
private static final ThreadLocal<Integer> threadId = ThreadLocal.withInitial(() -> 0); public static void main(String[] args) { System.out.println(threadId.get()); // obtem o valor da variável local da thread }
Kesimpulan:
Elakkan godaan untuk menggunakan rentetan untuk segala-galanya. Menggunakan jenis data yang lebih sesuai atau mencipta jenis baharu menghalang ralat, meningkatkan kebolehbacaan dan menjadikan kod lebih cekap dan selamat.
Contoh daripada buku:
Atas ialah kandungan terperinci Perkara Elakkan rentetan di mana jenis lain lebih sesuai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!