本帖最后由 Jim-剣◆﹏ 于 2013-10-30 19:51 编辑
刚看到我也有些疑惑,但是验证了下,发现其实这就是个把戏,多此一举的把戏而已,看我详细分析来
这个方法的功能点是:将任意类型的对象转换成指定类型(我觉得严重夸大了,或者你理解错了老师的意思)
就用你代码里的例子来说,现在你要把原本已经是String类型的匿名对象“abc”向上转型(多态),让Object类来接收(Object是所有类的公共父类),然后再转成String类型的对象
编译器根本不需要你指定什么泛型的类型,因为你现在要干的是就是就是把String匿名对象->Object->String类型对象
这个方法的功能也仅限于此
为什么呢,如果可以的话,看以下代码- public class TestDemo {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(autoConvert(123456) instanceof String);//返回false
- System.out.println(autoConvert(123456) instanceof Integer);//返回true
- }
- @SuppressWarnings("unchecked")
- private static <T> T autoConvert(Object obj){
- return (T)obj;
- }
复制代码 这就说明,不能把int类型的对象通过这个方法转换成String类型,只能转成Integer,“将任意类型的对象转换成指定类型”这个说法是错误的
老师的意思我猜测下,可能是想表达自动装箱的功能
|