泛型只涉及到某个方法中的参数声明时,使用泛型方法而不是泛型类。
定义:
不仅类可以声明泛型,类中的方法也可以声明仅用于自身的泛型,这种方法叫做泛型方法。泛型可用于返回类型声明,参数类型声明,局部变量的类型声明
格式:
访问修饰符<泛型列表> 返回类型 方法名(参数列表){
实现代码
}
静态方法:
施加类型约束的方法伪静态方法,只能将其定义为泛型方法,因为静态方法不能使用期所在类的类型参数。
Code Deomo
package Genericity;
public class GenericDemo4 {
public static void main(String[] args) {
//定义了泛型类的实例gen,gen的方法就只是使用定义的数据类型
/*GenericClass2<String> gen=new GenericClass2<String>();
gen.println("abc");*/
GenericClass2 gen=new GenericClass2();
//泛型定义在方法中,可以随意输出指定的类型数据
gen.println("ABC");
gen.println(100);
gen.println(true);
gen.println(new Dog());
gen.println(new Cat());
GenericClass2.print("content for static method");
}
}
class GenericClass2/*<T>*/{
//泛型类定义的泛型会把方法引用的类型写死
/*public void println(T content){
System.out.println(content);
}
*/
//类型的定义放在方法上
public <T> void println(T content){
System.out.println(content);
}
//泛型方法的重载
public <T extends IAnimal> void println(T animal){
animal.eat();
}
public static <T> void print(T content){
System.out.println(content);
}
}
interface IAnimal{
public abstract void eat();
}
class Dog implements IAnimal{
public void eat(){
System.out.println("eating bones");
}
}
class Cat implements IAnimal{
public void eat(){
System.out.println("eating fish");
}
}