首先,假如有这样的一个类定义
public class Query
{
public T get(Class class){}
public List getAll(Class class){}
}这里在query后面定义的是什么意思,为什么要在这个位置定义呢?跟后面方法的参数T又有什么关系呢?
其次,有这样的定义类
public class Query
{
public T get(Class class){}
public List getAll(Class class){}
}这样写为什么也可以呢,为什么不在query后面跟上定义就要在方法的前面加上定义呢?
然后,如果有这样的定义类
public class Query
{}这里T后面的参数可以是多个吗?这样定义又是什么意思呢?
求好心人解答,大恩不言谢
![](https://profile-avatar.csdnimg.cn/f599d5438732482c86a227680b07588c_charsli.jpg!4)
关于java泛型的使用问题(求解答,十分感谢)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- wangdgsc0105 2012-09-24 19:48关注
声明的T可以出现多个
在类定义处声明的泛型,则用来指定这个类用来处理的对象类型,这个类中定义的所有方法,只要使用了类定义处声明的泛型参数,则都必须使用同一个对象,否则,编译就会出现错误
如果仅仅是在方法声明处定义泛型,则表示这个方法的参数或返回值使用什么类型的数据,解决的问题
1.不再需要强制转型;
2.编辑器增加了强制检查集合中的对象类型的功能,避免了在Girl的集合中出现Boy对象的问题(虽然有的时候是我们所期待的)如:
public class Query{
private T t;
public T get(){...};
public void set(T t){...};
}如果使用的方式如下:
Query query = new Query();
则上面定义的类与下面的定义一致
public class Query{
private User t;
public User get(){...}
public void set(User t){}
}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵