Java çeteleler == kullanmak için TAMAM mı?
Java çeteleler ==
kullanmak için OK veya .equals()
kullanmam gerekiyor? Benim test her zaman işe yarar, ama eğer bunu garanti ediyorum emin değilim. Özellikle, yok .clone()
yöntem üzerine bir numaralama, yani bilmiyorum, eğer almak için bir numaralama için hangi .equals()
döndürecektir farklı bir değeri daha ==
.
Örneğin, bu TAMAM
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Ya da bu şekilde yazmam gerekiyor
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
CEVAP
, == Evet gayet iyi - her değer için sadece tek bir referans olmasını garanti yok.
Ancak, yuvarlak yöntemi yazmanın daha iyi bir yolu var:
public int round(RoundingMode roundingMode) {
switch (roundingMode) {
case HALF_UP:
//do something
break;
case HALF_EVEN:
//do something
break;
// etc
}
}
Bir biledaha iyibunu yapmanın yolu numaralama içinde işlevselliği kendini koymak için, sadece roundingMode.round(someValue)
diyebilirsin. Bu Java çeteleler kalbine alırnesne yönelimliçeteleler, değerleri" başka bir yerde buldu. "isimli aksine
EDİT: spec çok net değil, ama ** 13 devletler:
Bir numaralama türü vücut içerebilir numaralandırma sabitler. Bir numaralandırma sabiti tanımlar numaralama türünün bir örneği. Bir numaralama türü örneklerini başka yok bu numaralandırma tarafından tanımlanmış daha sabitler.
Nasıl java kullanmak için.String.Scala...
Android geliştirme için Java 8 kullanm...
Java eklentisi döndürür bir WordPress ...
Target=&HTML5;_blank" quot; kullan...
Eclipse'de yeni bir proje Maven Java 1...