java: bu nedir: [Ljava.lang.Nesne;?
Bir işlev çağrısı alınan bir nesne üzerinde toString aradığımda bu olsun. Nesne türü bu dize kodlanmış olduğunu biliyorum, ama nasıl okunacağını bilmiyorum. Bu tür kodlama ne denir?
CEVAP
[Ljava.lang.Object; Object[].class, java.lang.Class dizinin sınıfı temsil eden Object adıdır.
Adlandırma şeması Class.getName() belgelenmiştir:
Eğer bu sınıftan bir nesne dizisi yazın değil, bir başvuru türü temsil ediyorsa sınıf ikili adı Java Dil Şartnamesi (§13.1) belirttiği gibi döndürülür.
Eğer bu sınıf nesnesini ilkel bir tür ya da
void, daha sonra adı verilen temsil ediyorsa Java dili temel türü için anahtar kelime ilgili veyavoid.Eğer bu nesne sınıfı temsil eden bir sınıf dizileri, sonra iç formun adını içerir adını unsuru tür koyarak, bir veya daha fazla
'['karakter derinliğini temsil eden bir dizi iç içe geçmiş. Öğe türü adları kodlama aşağıdaki gibidir:Element Type Encoding boolean Z byte B char C double D float F int I long J short S class or interface Lclassname;
İşte bazı örnekler:
// xxxxx varies
System.out.println(new int[0][0][7]); // [[[I@xxxxx
System.out.println(new String[4][2]); // [[Ljava.lang.String;@xxxxx
System.out.println(new boolean[256]); // [Z@xxxxx
Diziler toString() yöntemi bu biçimde String iade sebebi diziler @Override yöntemi aşağıdaki gibi belirtilir: Object, miras olmasıdır
toStringmethod for classObjectbir dize döndürür oluşan Adı Sınıf olan bir nesne örneği,-işareti karakteri ` @ ' ve işaretsiz onaltılık gösterimi karma kod nesne. Diğer bir deyişle, bu yöntem bir dize değerine eşit verir:getClass().getName() '@' Integer.toHexString(hashCode())
Not: edebildikleri için herhangi bir rasgele nesne toString() yukarıdaki şartname takip itimat edemez (ve genellikle yapmak) @Override başka bir şey dönmek. Daha güvenilir bir şekilde teftiş türünde bir rasgele nesne çağırmak için getClass() (final yöntem devralınan Object) ve reflecting iade Class nesne. İdeal olarak, olsa da, API yansıması gerekli değildir (bkz . böyle tasarlanmış olmalıydı ^em>Etkili Java 2. Baskı, Madde 53: yansıma . arayüzleri Tercih ).
Bir daha "" diziler . toString yararlı
java.util.Arrays ilkel diziler ve Object[] toString aşırı sağlar. İç içe diziler için kullanmak isteyebilirsiniz o da deepToString var.
İşte bazı örnekler:
int[] nums = { 1, 2, 3 };
System.out.println(nums);
// [I@xxxxx
System.out.println(Arrays.toString(nums));
// [1, 2, 3]
int[][] table = {
{ 1, },
{ 2, 3, },
{ 4, 5, 6, },
};
System.out.println(Arrays.toString(table));
// [[I@xxxxx, [I@yyyyy, [I@zzzzz]
System.out.println(Arrays.deepToString(table));
// [[1], [2, 3], [4, 5, 6]]
Ayrıca Arrays.equals ve dizi eşitlik elemanları, dizi ile ilgili birçok yardımcı yöntemler arasında karşılaştırma yapmak Arrays.deepEquals vardır.
İlgili sorular
- Java Arrays.equals() returns false for two dimensional arrays. -- derinlemesine kapsama

Java, nesne boyutunu belirlemek için e...
Java Scala eşdeğer.lang.Sınıf<T>...
Java nedir.lang.İplik.() kesme?...
Eclipse Java proje: türü java.lang.Nes...
Arasındaki fark nedir ? ve Java jeneri...