public <TA, TB> List<TA> getAllEntitys()
{
List<TA> list = new ArrayList<TA>();
Class<TB> tb;
for (TB s : ds.find(tb).asList()) {
list.add(s);
}
return list;
}

解决方案 »

  1.   

    改了一下,这样第一个问题是解决了,但第二个问题,没法告诉list,TB继承自TA
      

  2.   

    http://blog.chinaunix.net/uid-122937-id-3804402.html
    ?extends通配符,向上造型一个泛型对象的引用
      

  3.   

    谁能让这一段代码编译通过?import java.util.ArrayList;
    import java.util.List;class ABase
    {

    }class BSubClass extends ABase
    {

    }public class testMain { @SuppressWarnings("unchecked")
    static <TA, TB> List<TA>  genericTest(List<TB> list)
    {
    List<TA> a = new ArrayList<TA>();
    for(TB t : list)
    {
    a.add((TA)t);
    }
    return a;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    ArrayList<BSubClass> list = new ArrayList<BSubClass>();
    ArrayList<ABase> a = genericTest(list); }}
      

  4.   


    static <TA> List<TA>  genericTest(List<? extends TA> list)
    {
    List<TA> a = new ArrayList<TA>();
    for(TA t : list)
    {
    a.add(t);
    }
    return a;
    }