Java反射,对象有什么类?

Java反射,对象有什么类?,java,reflection,Java,Reflection,我正在尝试对小程序进行一些反思。 我发现了一些整数、字符串、对象等数组 例如,如果存在一个包含对象[]和对象[0]的字段。toString()=[I@7593c366 然后我知道它是一个整数数组。但是如果它说aa@98324ca33那是aa级吗? 我使用的是类加载器,所以我的第一个猜测是当我看到这一点时,我需要加载aa类(在@之前的部分,并在其中使用对象。但是我不确定@之前的部分是类。有人能说我这是对的吗?或者有其他想法吗 thnx!您不应该为此使用toString()——首先,它可以被覆盖。作

我正在尝试对小程序进行一些反思。 我发现了一些整数、字符串、对象等数组

例如,如果存在一个包含对象[]和对象[0]的字段。toString()=[I@7593c366 然后我知道它是一个整数数组。但是如果它说aa@98324ca33那是aa级吗? 我使用的是类加载器,所以我的第一个猜测是当我看到这一点时,我需要加载aa类(在@之前的部分,并在其中使用对象。但是我不确定@之前的部分是类。有人能说我这是对的吗?或者有其他想法吗


thnx!

您不应该为此使用
toString()
——首先,它可以被覆盖。作为一个简单的示例:

Object x = "aa@98324ca33";
String bogusClassName = x.toString();
如果认为
x
在这里指的是
aa
类型的对象,那么显然是错误的——它指的是字符串

您只需对任何对象调用
getClass()
,即可找到该对象的类:

Object x = new SomeType();
Class<?> clazz = x.getClass();
objectx=newsometype();
类clazz=x.getClass();

现在还不清楚你想做什么,或者从哪里获取信息,但是你绝对不应该使用
toString
来确定所涉及的类。

你不应该使用
toString()
进行此操作-首先,它可以被覆盖。作为一个简单的例子:

Object x = "aa@98324ca33";
String bogusClassName = x.toString();
如果认为
x
在这里指的是
aa
类型的对象,那么显然是错误的——它指的是字符串

您只需对任何对象调用
getClass()
,即可找到该对象的类:

Object x = new SomeType();
Class<?> clazz = x.getClass();
objectx=newsometype();
类clazz=x.getClass();

现在还不清楚你想做什么或者从哪里获取信息,但是你绝对不应该使用
toString
来确定所涉及的类。

是的,@之前的部分是类fqn,但你不应该依赖它。对象可以覆盖
toString()
然后您的逻辑将失败


请改用
obj.getClass()

是的,@之前的部分是类fqn,但您不应该依赖它。对象可以重写
toString()
,然后您的逻辑将失败

改为使用
obj.getClass()

查看该类。只需调用对象上的
getClass
即可检索其类,而不是使用
toString
方法

Object anObject = ... ;
Class<?> clazz = anObject.getClass();
如果你有一个
实例,你可以使用这个方法来确定一个对象是否属于这个类

看看这个类,只需调用对象上的
getClass
,而不是使用
toString
方法来检索它的类

Object anObject = ... ;
Class<?> clazz = anObject.getClass();
如果你有一个
实例,你可以使用这个方法来确定一个对象是否属于这个类


为什么不直接使用对象[0]。getClass()?还有,为什么需要再次加载该类?而且您知道类通常不包含对象,不是吗?因此在其中使用对象并不十分准确。为什么不直接使用对象[0]。getClass()?另外,为什么需要再次加载该类?而且您知道类通常不包含对象,不是吗?因此在其中使用对象并不十分准确。