基本语法:
修饰符
返回类型 方法名(参数列表){ }
注意细节:
- 泛型方法,可以定义在普通类中,也可以定义在泛型类中
- 当泛型方法被调用时,类型会确定
- public void eat(E e)0,修饰符后没有
eat方法不是泛型方法,而是使用了泛型 ```java package test;
import java.util.ArrayList;
public class Main { public static void main(String[] args) { Car car = new Car(); car.fly(“宝马”, 100);//当调用方法时,传入参数,编译器,就会确定类型 System.out.println(“=======”); car.fly(300, 100.1);//当调用方法时,传入参数,编译器,就会确定类型
//测试//T->String, R-> ArrayListFish<String, ArrayList> fish = new Fish<>();fish.hello(new ArrayList(), 11.3f);}
}
//泛型方法,可以定义在普通类中, 也可以定义在泛型类中 class Car {//普通类
public void run() {//普通方法}//说明 泛型方法//1. <T,R> 就是泛型//2. 是提供给 fly使用的public <T, R> void fly(T t, R r) {//泛型方法System.out.println(t.getClass());//StringSystem.out.println(r.getClass());//Integer}
}
class Fish
}//说明//1. 下面hi方法不是泛型方法//2. 是hi方法使用了类声明的 泛型public void hi(T t) {}//泛型方法,可以使用类声明的泛型,也可以使用自己声明泛型public<K> void hello(R r, K k) {System.out.println(r.getClass());//ArrayListSystem.out.println(k.getClass());//Float}
}
<a name="idaYQ"></a># 案例:```javapackage test;public class Main {public static void main(String[] args) {//T->String, R->Integer, M->DoubleApple<String, Integer, Double> apple = new Apple<>();apple.fly(10);//10 会被自动装箱 Integer10, 输出Integerapple.fly(new Dog());//Dog}}class Apple<T, R, M> {//自定义泛型类public <E> void fly(E e) { //泛型方法System.out.println(e.getClass().getSimpleName());}//public void eat(U u) {}//错误,因为U没有声明public void run(M m) {} //ok}class Dog {}

