バイト配列が、私はobj
を命名したのHashMapのサブクラスのインスタンスでに位置しており、私はその上にこれらのメソッドを呼び出すとき:Java配列はどのようにインデックスからアクセスできませんか?
Class c = obj.get("data").getClass();
System.out.println(c.getName() + " is array " + c.isArray());
それは何私から
[B is array true
を印刷します[B
シンボルについて読んだ場合、それはバイト配列であることを意味します。しかし、私はそれがobj.get("data")
言うので
System.out.println(obj.get("data").length);
または
System.out.println(obj.get("data")[0]);
または
System.out.println(obj.get("data").get(0));
または
byte[] ar = (byte[]) obj.get("data");
コンパイラは文句を言い、その上にこれらのメソッドを呼び出すしようとすると、 、そのref配列は実際にはObjectだけであり、したがってこれらの利用可能な振る舞いはありません。
インクルードはない、それが配列であることを意味する場合の方法isArray()
を正確に何を反映する:ここ
私の基本的な質問はこれでしょうか?
としてマップを宣言することです。 – nachokk
このオブジェクトがObjectのインスタンスであり、そのクラスが 'isArray()'を呼び出した後にtrueを返すので真実ではありません –
Peterでは、javaでは配列がオブジェクトです。 'obj'の定義を表示 – nachokk