黑马程序员技术交流社区

标题: 求找错 [打印本页]

作者: 白磊    时间: 2013-5-14 16:12
标题: 求找错
本帖最后由 白磊 于 2013-5-14 16:33 编辑

import java.lang.reflect.*;

public class Test {
        public static void main(String[] args) {
                FiledTest o1=new FiledTest("hello1",100);
                FiledTest o2=new FiledTest("hello2",300);
                System.out.println(compare(o1,o2).name+"is bigger");   //这句报错
        }

        private static Object compare(FiledTest o1, FiledTest o2){               
                try {//以下用两种方式获取一个Field对象
                        //返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段(属性)。
                        Field field =o1.getClass().getDeclaredField("age");
                    field=FiledTest.class.getDeclaredField("age");
                    //获得两个对象的age值
                    int value1=(Integer) field.get(o1);
                    int value2=(Integer) field.get(o2);
                    //进行比较
                    if(value1>value2){
                            return o1;
                    }else
                            return o2;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return null;
        }
        
}

class FiledTest {
        String name;
        int age;
        public FiledTest(String name,int age){
                this.name=name;
                this.age=age;
        }
}
作者: ZhaoYuBetter    时间: 2013-5-14 16:27
private static Object compare(FiledTest o1, FiledTest o2) ,改为:
private static FiledTest compare(FiledTest o1, FiledTest o2)
就可以了

作者: 黄伟成    时间: 2013-5-14 16:47
ZhaoYuBetter 发表于 2013-5-14 16:27
private static Object compare(FiledTest o1, FiledTest o2) ,改为:
private static FiledTest compare ...

同意,同意




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2