OPPPPOP 2010-06-12 17:17
浏览 201
已采纳

java <T> 疑问

[code="java"]
public List getValues(Class c) throws Exception{
List values = new ArrayList();
T o= c.newInstance();
values.add(o);
return values;
}
[/code]
这个是从一个类文件拷出来的代码
List 为什么要这样写
我感觉[code="java"]
public List getValues(Class c) throws Exception{
List values = new ArrayList();
T o= c.newInstance();
values.add(o);
return values;
}
[/code]
这样写就是正确的
事实拷出来的代码在新的类里确实正常
关键是在原类会报错

Multiple markers at this line
- T cannot be resolved to a type
- T cannot be resolved to a type
--Eclipse 提示
非常不理解 为什么

  • 写回答

7条回答 默认 最新

  • myali88 2010-06-13 12:58
    关注

    [quote]
    List 与List的区别
    [/quote]
    我还没说清楚吗?你不要把这两个一起比较,虽然形式上很像,但它们是两个语法类型。比较下面两个声明:
    [code="java"]
    public List getValues(Class c) throws Exception{
    List values = new ArrayList();
    T o= c.newInstance();
    values.add(o);
    return values;
    }

    public void getValues2(Class c) throws Exception{
    List values = new ArrayList();
    T o= c.newInstance();
    values.add(o);

    }
    

    [/code]
    上面的“ List”和“ void”才具有可比性,从上面可以看出表示声明泛型方法,是语法的一部分,“List”或“void”表示方法的返回类型。至于List,我想你应该知道是什么含义了,就是泛型类的语法方式。
    另外,上面这两方法可以放到任何普通类里面,不会出现任何问题。但要注意使用JDK 5及以上,还有一点,Eclipse里的编译器是可以设置JDK级别的,即使是JDK5,也可以设置为1.4的级别,所以,不要光看是相同的JDK,还要看使用编译器的级别。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法