2

我有一个对象,它包含如图所示的值。但是当我记录它的价值但它没有给我价值

请看图片。在调试时,我能够看到值数组。谁能告诉我如何获得这个值。?

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

输出 :

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

在此处输入图像描述

任何帮助,将不胜感激。

编辑 :

它不是对象数组它的对象

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

这个额外的变量也向我显示了与图片相同的值。

谢谢

4

3 回答 3

2

您正在array直接记录,您需要迭代array然后log输出。

从 Java 5 你可以做Arrays.toString(arr)

于 2013-09-21T12:21:55.810 回答
0

你可以打印你的对象

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

因为您的对象是一个数组,或者您可以在添加索引后使用您的对象来访问数组中的元素,例如

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

等等

于 2013-09-21T12:26:41.243 回答
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()
////////////////

希望这可以帮助您将对象转换为正确的类型并以您喜欢的方式使用它

于 2013-09-21T14:14:37.730 回答