自定义泛型方法
public class CustomMethodGeneric {
public static void main(String[] args) {
Car car = new Car();
car.fly("宝马", 100);//当调用方法时,传入参数,编译器,就会确定类型
System.out.println("=======");
car.fly(300, 100.1);//当调用方法时,传入参数,编译器,就会确定类型
//测试
//T->String, R-> ArrayList
Fish fish = new Fish<>();
fish.hello(new ArrayList(), 11.3f);
}
}
//泛型方法,可以定义在普通类中, 也可以定义在泛型类中
class Car {//普通类
public void run() {//普通方法
}
//说明 泛型方法
//1. 就是泛型
//2. 是提供给 fly使用的
public void fly(T t, R r) {//泛型方法
System.out.println(t.getClass());//String
System.out.println(r.getClass());//Integer
}
}
class Fish {//泛型类
public void run() {//普通方法
}
public void eat(U u, M m) {//泛型方法
}
//说明
//1. 下面hi方法不是泛型方法
//2. 是hi方法使用了类声明的 泛型
public void hi(T t) {
}
//泛型方法,可以使用类声明的泛型,也可以使用自己声明泛型
public void hello(R r, K k) {
System.out.println(r.getClass());//ArrayList
System.out.println(k.getClass());//Float
}
}
public class sds {
public static void main(String[] args) {
a1 a11 = new a1<>();
a11.f2("sds",2,3,2);
}
}
class a1{
public void f2(T t,R r,M m,O o){
System.out.println(t.getClass().getSimpleName());
System.out.println(r.getClass().getSimpleName());
System.out.println(m.getClass().getSimpleName());
System.out.println(o.getClass().getSimpleName());
}
}