2013-09-21 15 views
1

我有一個Object,它包含如圖所示的值。 但是,當我登錄其價值,但它不給我價值我該如何閱讀java中的Object(java.lang.Object)

請參閱圖像。在調試的時候,我可以看到數組的價值。任何人都可以告訴我,我怎麼能得到這個價值?

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

輸出:

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

enter image description here

任何幫助,將不勝感激。

編輯:

它不是對象數組,其目的

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

這個額外的變量也表明了我相同的值,喜歡的圖片。

感謝

+0

'object'是一個數組,因此你需要使用索引來獲得值如:'Loger.d(「TAG」,「loop稱爲「+ object [0]);' –

+0

改爲使用'Arrays.toString(object)'。並且,當你還有功能性的眼睛時,請改變你的配色方案。 –

+0

我忘了提及的東西..對象[]也是一個對象 –

回答

0

,你可以打印你的對象

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

,因爲你的對象是一個數組,或者你可以用你的對象添加索引後訪問該元素在你的陣列,像

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

+0

沒有我無法做到這一點 –

+1

請檢查我的編輯帖子 –

+0

@Sam_k你可以覆蓋這個對象的toString(),或者你不能到達它的源代碼? –

2

要記錄array直接,你需要遍歷的array然後log輸出。

從Java 5中,你可以做Arrays.toString(arr)

+0

我得到這個錯誤:他的方法toString(布爾[])在類型數組不適用的參數(對象) –

+0

請檢查我的編輯帖子 –

0

現在看來你的問題並不知道對象是什麼,所以你不能根據你的喜好進行投射或處理,所以這裏有一段代碼使用java反射「java.lang.reflect包」來識別任何奇怪的對象你可以看到,所以可以實現它包含了哪些方法和它的類型

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() 
//////////////// 

希望這可以幫助你將對象投射到正確的類型並以你喜歡的方式使用它

+0

再次感謝您的答覆。但我從庫中找到對象類型。 @Override public Object getExtra(){return new Object [] {device.getName(),device.getAddress()}; }這裏的設備是BluetoothDevice設備。 –

+0

以及你說這個方法返回對象[] ...我自己現在困惑在這裏:)對不起,如果我無法幫助這個...也許更多的澄清你的問題將在這裏幫助 –