84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Bedeutet das, dass der zurückgegebene Typ <T> sein kann?
楼上已经回答的很专业了...我就白话的方式回答一下,哈哈比如平常看到一个方法可能是这样的
public BigCar find(Long carId)
这个方法编译没问题的前提是BigCar是一个已存在的类嘛,想表述根据一个车的id查询大车BigCar
BigCar
这时你还想写一个小车SmallCar的查询方法,估计就应该先创建一个SmallCar,然后写一个查询方法
SmallCar
public SmallCar find(Long carId)
没问题,这个时候你要是想任性说写一个不管是大车还是小车,都是根据id查询的方法,任性的写法就是
public XXX find(Long carId)
那编译器肯定就要犯愁了,你这个XXX是什么鬼啊,没有这个类啊敲黑板!!!重点来了这个时候就有个语法哈,你想要表明这个XXX只是一个代指,但是具体是啥不知道,那就用<>表示,里面可以写n个代指的东西,中间用逗号隔开,这样就写成了
XXX
<>
public <XXX> XXX find(Long carId)
所以啊,<>只是代表一个定义符,里面定义了一堆变量,方便后续使用而已你在方法中定义,那这个变量的适用范围就在这个方法里你要是在类里定义,嘿嘿,那这个变量整个类里都可以用哦,比如:
public class Car<X, XX>{ X x; XX xx; Long id; public X findX(){ return x; } }
java的泛型方法的写法,语法规定返回类型是T<T>是表明这是个泛型方法(我猜是和编译有关的,毕竟Java泛型是擦除方式的
楼上已经回答的很专业了...我就白话的方式回答一下,哈哈
比如平常看到一个方法可能是这样的
这个方法编译没问题的前提是
BigCar
是一个已存在的类嘛,想表述根据一个车的id查询大车BigCar
这时你还想写一个小车
SmallCar
的查询方法,估计就应该先创建一个SmallCar
,然后写一个查询方法没问题,这个时候你要是想任性说写一个不管是大车还是小车,都是根据id查询的方法,任性的写法就是
那编译器肯定就要犯愁了,你这个XXX是什么鬼啊,没有这个类啊
敲黑板!!!重点来了
这个时候就有个语法哈,你想要表明这个
XXX
只是一个代指,但是具体是啥不知道,那就用<>
表示,里面可以写n个代指的东西,中间用逗号隔开,这样就写成了所以啊,
<>
只是代表一个定义符,里面定义了一堆变量,方便后续使用而已你在方法中定义,那这个变量的适用范围就在这个方法里
你要是在类里定义,嘿嘿,那这个变量整个类里都可以用哦,比如:
java的泛型方法的写法,语法规定
返回类型是T
<T>是表明这是个泛型方法(我猜是和编译有关的,毕竟Java泛型是擦除方式的