2

オブジェクトが 1 つあり、図に示すように値が含まれています。しかし、その値をログに記録しても、値が得られない場合

画像をご覧ください。デバッグ時に、値の配列を見ることができます。この値を取得する方法を教えてください。

Loger.d("TAG", "loop called  " + object.toString());

出力:

loop called  [Ljava.lang.Object;@41ea9df8

ここに画像の説明を入力

任意の助けをいただければ幸いです。

編集 :

オブジェクト配列ではない そのオブジェクト

@Override
public IOIOLooper createIOIOLooper(String connectionType, Object extra) {
    return createIOIOLooper();
}

この追加の変数も、Picture と同じ値を示します。

ありがとう

4

3 に答える 3

2

直接ログに記録しているため、出力を繰り返してから出力arrayする必要があります。arraylog

Java 5からできることArrays.toString(arr)

于 2013-09-21T12:21:55.810 に答える
0

あなたの問題はオブジェクトが何であるかを知らないようですので、好きなようにキャストしたり処理したりすることはできません.見ることができるので、含まれているメソッドとそのタイプを理解できます

public void identifyObject(Object object){

    Class objectClass = object.getClass();
    Method[] methods = objectClass.getMethods();

    System.out.println("Class Name : "+objectClass.getName());
    System.out.println("Class Type : "+objectClass.getSimpleName());

    System.out.println("Available Methods : ");
    for(Method method : methods){
        System.out.println(method.toString());
    }
}

今この方法を使用しています:

public static void main(String[] args) {

    // the class that holds identifyObject() method
    Main app = new Main();

    System.out.println("identify Array :");
    int[] ints = new int[5];
    app.identifyObject(ints);

    System.out.println("-----------");

    System.out.println("identify object");
    Object object = new IOIO("un known object");
    app.identifyObject(object);

    System.out.println("////////////////");

}

結果は次のとおりです。

identify Array :
Class Name : [I
Class Type : int[]
Available Methods : 
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
-----------
identify object
Class Name : com.stackoverflow.ioio.IOIO
Class Type : IOIO
Available Methods : 
public char[] com.stackoverflow.ioio.IOIO.getChars()
public void com.stackoverflow.ioio.IOIO.setWord(java.lang.String)
public java.lang.String com.stackoverflow.ioio.IOIO.getWord()
public void com.stackoverflow.ioio.IOIO.setChars(char[])
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
////////////////

これがオブジェクトを正しいタイプにキャストし、好きなように使用するのに役立つことを願っています

于 2013-09-21T14:14:37.730 に答える
0

オブジェクトを印刷できます

System.out.print(java.util.Arrays.toString(object));

オブジェクトは配列であるため、またはインデックスを追加した後にオブジェクトを使用して、配列内の要素にアクセスできます。

Object objectOne = object[0];
Object objectTwo = object[1];

等々

于 2013-09-21T12:26:41.243 に答える