作为一个 Java 程序员,日常编程早就离不开泛型,而Java语言中引入泛型是一个较大的功能增强,使得开发人员更好开发,那java泛型方法怎么使用?下面来我们就来给大家讲解一下java泛型方法使用方法。
1、泛型类和泛型接口
如果定义的一个类或接口有一个或多个类型变量,则可以使用泛型。泛型类型变量由尖括号界定,放在类或接口名的后面,下面定义尖括号中的T称为类型变量。意味着一个变量将被一个类型替代替代类型变量的值将被当作参数或返回类型。对于List接口来说,当一个实例被创建以后,T将被当作一个函数的参数下面分别是泛型类、泛型接口的定义:
public class Gen
……
}
public interface List
……
}
2、泛型方法
是否拥有泛型方法,与其所在的类是否泛型无关。
要定义泛型方法,只需将泛型参数列表置于返回值前。
如:
public class ExampleA{
public<> voidf(Tx){
System.out.println(x.getClass().get Name());
}
publiec static void main(String args[ ]){
ExampleA ea= new ExampleA();
ea-f("");
ea.f(10);
ea.f(a);
ea.f(ea);
}
}
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。需要注意,一个static方法,无法访问泛型类的类型参数,所以,若要static方法需要使用泛型能力,必须使其成为泛型方法。
使用java泛型要注意什么?
使用ava泛型应该注意如下几点:
在定义一个泛型类时,在“<>”之间定义形式类型参数,例如:“class
TestGen
实例化泛型对象时,一定要在类名后面指定类型参数的值(类型),一共要有两次书写。
泛型中
使用泛型时,泛型类型必须为引用数据类型,不能为基本数据类型,Java中的普通方法,构造方法,静态方法中都可以使用泛型,方法使用泛型之前必须先对泛型进行声明,可以使用任意字母,一般都要大写。
不可以用一个本地类型(如int float)来替换泛型。
运行时类型检查,不同类型的泛型类是等价的(Pair与Pair是属于同一个类型Pair),这一点要特别注意,即如果obj instance of Pai == true的话,并不代表objget First()的返回值是一个String类型。
泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出。
不可以定义泛型数组。
不可以用泛型构造对象,即:first = new T();是错误的。
在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰
不要在泛型类中定义equals(Tx)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突。
根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值。
若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类。
虽然java泛型给大家带来很多的好处,但是在使用的时候一定要注意以上这些注意事项,目的就是为了更好的开发。最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。
推荐阅读: