SORU
4 Mart 2013, PAZARTESİ


Kurallı, isim, basit isim ve Java Ders adı arasındaki fark nedir?

Java: arasındaki fark Nedir:

Object o1= ....
o1.getClass().getSimpleName();
o1.getClass().getName();
o1.getClass().getCanonicalName();

?

GÜNCELLEME

Zaten Javadoc birden çok kez kontrol ettim ve henüz bu hiç iyi açıklıyor. Ben de bir test çalıştırmak ve bu yöntemleri denir yolu arkasındaki gerçek anlamını yansıtacak yoktu.

Bu yüzden lütfen, bu soruyu soran ve beni javadoc için yönetmenlik için beni suçlamak yerine, onların arkasındaki gerçek anlamını açıklamak için bazı çabalar vermeye çalışın. Desteğiniz için teşekkürler.

CEVAP
4 Mart 2013, PAZARTESİ


Eğer bir şey hakkında emin değilseniz, önce bir test yazmayı deneyin.

Bunu ben yaptım:

//primitive
System.out.println(int.class.getName());
System.out.println(int.class.getCanonicalName());
System.out.println(int.class.getSimpleName());

System.out.println();

//class
System.out.println(String.class.getName());
System.out.println(String.class.getCanonicalName());
System.out.println(String.class.getSimpleName());

System.out.println();

//inner class
System.out.println(HashMap.SimpleEntry.class.getName());
System.out.println(HashMap.SimpleEntry.class.getCanonicalName());
System.out.println(HashMap.SimpleEntry.class.getSimpleName());        

System.out.println();

//anonymous inner class
System.out.println(new Serializable(){}.getClass().getName());
System.out.println(new Serializable(){}.getClass().getCanonicalName());
System.out.println(new Serializable(){}.getClass().getSimpleName());

Baskı:

int
int
int

java.lang.String
java.lang.String
String

java.util.AbstractMap$SimpleEntry
java.util.AbstractMap.SimpleEntry
SimpleEntry

ClassnameTest$1
null

getSimpleName boş bir dize döndürür son blok içinde boş bir satır var.

Sonuç olarak buna bakıyor

  • adıdinamik olarak kullanmak istediğiniz adı sınıf ile, örneğin, varsayılan classloader ile Class.forName arama yük.
  • kurallı adbir alma deyimi ve benzersiz olarak kullanılan ismi tanımlayan bir sınıf. toString veya günlük işlemleri sırasında yararlı olabilir.
  • basit bir isimgevşek tanımlar sınıf, yeniden toString veya günlük işlemleri sırasında yararlı olabilir ama benzersiz olmasını garanti edilmez.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • NextKsa

    NextKsa

    7 EKİM 2009
  • Peyton

    Peyton

    28 Aralık 2008