Java中使用Object对象,怎么获取对应类的方法? 代码如下:

static Object[] shapes = {new Circle(1.0),new Circle(2.0)};
Circle类中含有一个getArea()方法,请问怎么使用shapes变量获取这个getArea(),
我是这个想的,shapes[0].getClass().getArea(),可是这样找不到getArea()这个方法啊,应该怎么解决呢?

你创建数组的时候用Circle类创建,别用基类Object。
直接shapers[0].getArea()。就得到了。
你那个没有找到是因为你虽然new的是Circle类的对象进去的,不过是以父类Object类存储的。
需要强转才能调用Circle类的方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-06
如果你确定shapes[0]这个元素是Circle类的实例
就可以用
((Circle)shapes[0]).getArea()本回答被网友采纳
第2个回答  2012-11-06
你这个静态数组的类型是Object的,需要强制转换成Circle类型的才能用,你干嘛要这样写?直接定义成Circle 类型的数组不行么

java中 如何 根据Class<?> 对象,将Object转换成对应的类型
把一个object转化成你自定义类对象,你首先得确定你的object是那种类型?不然强行转肯定会出错,就算是把json object转自定义class<> 也要字段能对应上才能转,需要你自定义个转化得方法。如果是json转自定义类,可以用阿里得fastJson包,上面一行代码就是示例 ...

java如何取得Object中的值
for(Object object : list) {Map entry = (Map)object;值 = entry.get(‘字段名’);} 象(object),台湾译作物件,是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。定义一个嵌入的对象。请使用此元素向您的 ...

Java编程:Object类常见方法讲解
1. equals(Object obj) 方法 比较两个对象是否相等,地址相同返回true,值相等也返回true。例如:2. hashCode() 方法 返回对象的哈希码,用于比较对象相等性,常与equals方法一起使用。例如:3. toString() 方法 将对象转换为字符串表示形式并返回,默认为哈希码。例如:4. getClass() 方法 返回对象...

java中, 怎么调用别的类的私有方法?
利用反射即可调用;简易实例代码如下:import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;\/ author thomaslwq version 创建时间:Sep 4, 2012 9:53:49 PM 类说明 \/ public class ReflectionTest { public static void setObjectColor(Object obj) throws SecurityException,...

如何获取一个Object中的数据。
把a换成你的Object对象就行了 import java.lang.reflect.Field;public class Test { public static void main(String[] args) throws Exception { A a = new A();a.name = "test";a.age = 20;Field[] fields = a.getClass().getFields();for (int i = 0; i < fields.length; i+...

java中如何通过反射获取类的属性
简单的方法如下:Class<?> cls=Class.forName(className);\/\/\/通过类的名称反射类 Object obj=cls.newInstance();\/\/\/对象实例化 Field field=cls.getField(fieldName);\/\/\/这个对应的是属性 fieldValue=field.get(obj);\/\/\/这个就是属性的值 ...

java中Object 有哪些常用方法?
尽管Object类还包含如clone()、finalize()等方法,但在实际开发中,它们的运用相对较少。上述所列方法在Java开发中应用广泛,也是Java基础知识的重要组成部分。下面是Object类的源代码,其中包含了这些常用方法的实现细节:从源码中我们可以观察到,Object类中的常用方法主要包括:在使用Object类的常用方法时...

JAVA中Object类中 有几个方法
protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。Class<?> getClass()返回此 Object 的运行时类。int hashCode()返回该对象的哈希码值。void notify()唤醒在此对象监视器上等待的单个线程。void notifyAll()唤醒在此对象监视器上...

java Object 转 对象 类型
前两天刚遇到的同一个问题,我的解决方法是 allClass = projectService.getCondition(className,creatime);\/\/数据库取出来的是Object类型 for(int i=0;i<allClass.size();i++){ YanxiuClassVo classVo = new YanxiuClassVo();\/\/需要放入的实体类 Object[] objClass = (Object[])allClass.get...

一文掌握 Object 类里的所有方法(wait、notify、finalize)
1. getClass() 方法返回这个类对应的 Class 对象,是 Java 反射中最重要的一个类。2. hashCode() 方法返回这个对象的哈希值,默认情况下,Object 是返回对象在堆内存中的地址。3. equals(Object) 方法用于判断当前对象是否与传入的 obj 对象相等。在 Object 中,就是使用 == 来进行判断,但子类...

相似回答