A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张 涛 中级黑马   /  2012-9-13 10:59  /  1240 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

张老师讲的泛型中有几个练习题,这是第一题,写的很简单,但如何验证呢,我用了两种方式,都遇到了问题。
代码:
  1. public static void main(String[] args) throws Exception, NoSuchMethodException {
  2.                 //第一种验证,打印出的是Vector。不是已经转换了吗?
  3.                 List l = toObgect(new Vector());
  4.                 System.out.println(l.getClass().getName());
  5.                 //第二种验证,无法把object转化为string,报错,难道不能由父类强转为子类,只能由子类转为父类吗?
  6.                 String s = toObgect(new Object());
  7.                 System.out.println(s.getClass().getName());
  8.         }
  9.         //转化方法
  10.         public static <T> T toObgect(Object o){
  11.                 return (T)o;
  12.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
创出一片辉煌 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
父类持有子类的引用才能强转为子类,多态,toObgect(new Object());这个是Object类型的需要强制转换才能付给String 这样因该可以了String s = (String)toObgect(new Object());你在试试
回复 使用道具 举报
你Object没有初始化一个值
这样写就可以把Object转成String
import java.util.List;
import java.util.Vector;
public class Test {
        public static void main(String[] args)throws Exception {
                List l = toObgect(new Vector());
                System.out.println(l.getClass().getName());
                //第二种验证,无法把object转化为string,报错,难道不能由父类强转为子类,只能由子类转为父类吗?
                Object o="abc";
                String s = toObgect(o);
                System.out.println(s.getClass().getName());
        }
        public static <T> T toObgect(Object o){
              return (T)o;
   }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马