本帖最后由 zjf1990 于 2015-02-20 10:48:59 编辑

解决方案 »

  1.   

    嗯不是自动转换,obj转str就用obj的toString方法吧
      

  2.   

    ……
    Object object = "azzzz";
    ……
    在Java中,一个字符串常量对应一个String类的对象,所以这里object实际上就是一个String的对象。在Java中,所有类派生于Object,这句Object object="azzzz"没有问题,但是实际上object就是一个String对象,这里没有类型转换。
      

  3.   

    楼主可以在Object object=“azzzz"下面加一句System.out.println(object.getClass().getName())打印输出验证下。
      

  4.   

    按你的说法那么
    Object object=“azzzz"
    String aaa = object应该可以编译通过,但实际是需要强转的
      

  5.   

    按你的说法那么
    Object object=“azzzz"
    String aaa = object应该可以编译通过,但实际是需要强转的
    1.首先你要区分对象引用与对象的概念(不明白可以百度之),object与aaa都是对象引用,一个是Object类型的对象引用,但是它实际上指向的是一个String类型的对象,aaa是String类型的对象引用,指向的是同一个String类型对象;
    2.上面的意思是在field.set(person, object)操作里,object不需要强制转换类型,因为它实际上指向一个String类型的对象,所以在调用toString方法时执行的是String.toString(),这个处理由JVM自动识别(这个叫多态)。在Java中,向上转型不用强制转换。而向下转换需要强制转换,而且需要程序员自己保证转型的安全性。你上面给出的东东就是一个向下转型。