java中如何定义一个泛型函数?

我想定义一个函数,其中一个参数是T类型(未定), 另一个参数是继承于T的类型,可是这么写编译器会报错

\那该怎么办呢?还有就是我想问一句,是不是类型通配符不能脱离泛型使用,如果使用就会像我写的这样报错?

  泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

  定义泛型方法语法格式如下:


  定义泛型方法时,必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。

  Class<T>的作用就是指明泛型的具体类型,而Class<T>类型的变量c,可以用来创建泛型类的对象。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-09

我们只要在定义 class 时用上了 <T> 来说明 T 是一个尚未确定的类型。

看看 JDK 源码中的 ArrayList 是怎么定义的,它的类名后面跟着一个 <E>。

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
    ...
}

追问

可是,类名加上加上也错了

第2个回答  2014-05-09
你不能将一个对象推送到未知类型的集合中,之前的T定义了所以不会有错,再加上?就变成未知的了追问

那该怎么办呢?我想让参数一个是T类型,另一个是继承与T类型的,怎么做呢?

追答

public class Test{

public void test(T a,C b){

}
你可以试试这种

本回答被提问者采纳
相似回答