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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog