黑马程序员技术交流社区

标题: Java的泛型问题,急求 [打印本页]

作者: che201311    时间: 2013-11-26 10:04
标题: Java的泛型问题,急求
  1. public <T extends BaseEntity> List<T > LoadPositionCache(Class<T> clazz,final String fileLocation,String regionName)
  2. {
  3. ...
  4. }
复制代码


调用时是这么调用的:
LoadPositionCache(RichFirmLadderEntity.class ,"........","........");

RichFirmLadderEntity 是BaseEntity的子类。

在Eclipse编译时没错,但是在continuum中build的时候,报了这个错:

required: Class&lt;T&gt;,String,String
    [javac]   found: Class&lt;RichFirmLadderEntity&gt;,String,String
    [javac]   reason: inferred type does not conform to declared bound(s)
    [javac]     inferred: RichFirmLadderEntity
    [javac]     bound(s): BaseEntity
    [javac]   where T is a type-variable:
    [javac]     T extends BaseEntity declared in method &lt;T&gt;LoadPositionCache(Class&lt;T&gt;,String,String)


想问下各位为什么?
作者: 王贺    时间: 2013-11-26 16:56
LoadPositionCache(RichFirmLadderEntity.class ,"........","........");

RichFirmLadderEntity 是BaseEntity的子类。

===
RichFirmLadderEntity 是BaseEntity的子类。
但是RichFirmLadderEntity.class并不是BaseEntity的子类对象。
class是一种特殊的对象。
你把Class<T> clazz里面的T改成别的吧。
作者: che201311    时间: 2013-12-6 10:55
好吧 懂得不是太彻底




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2