java - public <T> T findOne(T record) 这是什么意思
问题描述
是代表返回的类型可以是<T> 或者 T 吗
问题解答
回答1:楼上已经回答的很专业了...我就白话的方式回答一下,哈哈比如平常看到一个方法可能是这样的
public BigCar find(Long carId)
这个方法编译没问题的前提是BigCar是一个已存在的类嘛,想表述根据一个车的id查询大车BigCar
这时你还想写一个小车SmallCar的查询方法,估计就应该先创建一个SmallCar,然后写一个查询方法
public SmallCar find(Long carId)
没问题,这个时候你要是想任性说写一个不管是大车还是小车,都是根据id查询的方法,任性的写法就是
public XXX find(Long carId)
那编译器肯定就要犯愁了,你这个XXX是什么鬼啊,没有这个类啊敲黑板!!!重点来了这个时候就有个语法哈,你想要表明这个XXX只是一个代指,但是具体是啥不知道,那就用<>表示,里面可以写n个代指的东西,中间用逗号隔开,这样就写成了
public <XXX> XXX find(Long carId)
所以啊,<>只是代表一个定义符,里面定义了一堆变量,方便后续使用而已你在方法中定义,那这个变量的适用范围就在这个方法里你要是在类里定义,嘿嘿,那这个变量整个类里都可以用哦,比如:
public class Car<X, XX>{ X x; XX xx; Long id; public X findX(){return x; }}回答2:
java的泛型方法的写法,语法规定返回类型是T<T>是表明这是个泛型方法(我猜是和编译有关的,毕竟Java泛型是擦除方式的
相关文章:
1. css3的背景图片属性有没有把图中这块蓝框区域(275*230)完整放在60*50区域?怎么写呢2. javascript - jQuery each 方法第三个参数args 如何解释?3. javascript - js中递归与for循环同时发生的时候,代码的执行顺序是怎样的?4. 如何分别在Windows下用Winform项模板+C#,在MacOSX下用Cocos Application项目模板+Objective-C实现一个制作游戏的空的黑窗口?5. android - 优酷的安卓及苹果app还在使用flash技术吗?6. javascript - 前端开发 本地静态文件频繁修改,预览时的缓存怎么解决?7. 新手 - Python 爬虫 问题 求助8. java - new + 类名,一定需要申明一个对象吗?9. mysql数据库每次查询是一条线程吗?10. python - linux怎么在每天的凌晨2点执行一次这个log.py文件
