请解释一下 public boolean isCoolection(Class type) 中 T的用法

eisldkw 2019-06-28 02:36:29
以下代码中

public <T> boolean isCoolection(Class<T> type) 中 T的用法

1、public 后面有一个 boolean了,为什么还要加一个 <T> 此处的 <T> 什么作用
2、Class<T> type 此处 有个Class 修饰 type了, 还加个 <T> 是做什么用?

感谢大家。
...全文
436 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
陶昌聚 2019-06-28
  • 打赏
  • 举报
回复
泛型,泛型指的是一种约束,也就是在该方法内有的参数的类型是'T'类型的,这个T是可编写的,即加入T改为int行,那么参数类型会被限定为int型,T可以被基本数据类型替换,也可以被引用数据类型替换
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
引用 5 楼 eisldkw 的回复:
[quote=引用 3 楼 ner_jiang 的回复:] 前面一个T声明这是一个泛型方法,后面一个T只是修饰参数的Class类型。其实你这个方法有没有T都是一样的,因为你的返回结果跟T没关系,你可以把两个T去掉看看。
非常感谢[/quote] 加不加要看方法中有没有用到T例如:

public <T> boolean test(Class<T> type) {
	    try {
			T t=type.newInstance();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	    return true;
	}
下面就不行了,通不过编译

public  boolean test(Class type) {
	    try {
			T t=(T)type.newInstance();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	    return true;
	}
eisldkw 2019-06-28
  • 打赏
  • 举报
回复
引用 3 楼 ner_jiang 的回复:
前面一个T声明这是一个泛型方法,后面一个T只是修饰参数的Class类型。其实你这个方法有没有T都是一样的,因为你的返回结果跟T没关系,你可以把两个T去掉看看。
非常感谢
eisldkw 2019-06-28
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465 的回复:
[quote=引用 楼主 eisldkw 的回复:] 以下代码中 public <T> boolean isCoolection(Class<T> type) 中 T的用法 1、public 后面有一个 boolean了,为什么还要加一个 <T> 此处的 <T> 什么作用 2、Class<T> type 此处 有个Class 修饰 type了, 还加个 <T> 是做什么用? 感谢大家。
前面一个<T>应该是表示泛用类型和参数中的T相对应,后面 boolean是代表返回值的类型 Class<T> 是class 的反射机制这里的<T>应该代表class的类型集合。 [/quote] 非常感谢。
ner_jiang 2019-06-28
  • 打赏
  • 举报
回复
前面一个T声明这是一个泛型方法,后面一个T只是修饰参数的Class类型。其实你这个方法有没有T都是一样的,因为你的返回结果跟T没关系,你可以把两个T去掉看看。
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
个人理解,说的不对欢迎指正。
qq_39936465 2019-06-28
  • 打赏
  • 举报
回复
引用 楼主 eisldkw 的回复:
以下代码中 public <T> boolean isCoolection(Class<T> type) 中 T的用法 1、public 后面有一个 boolean了,为什么还要加一个 <T> 此处的 <T> 什么作用 2、Class<T> type 此处 有个Class 修饰 type了, 还加个 <T> 是做什么用? 感谢大家。
前面一个<T>应该是表示泛用类型和参数中的T相对应,后面 boolean是代表返回值的类型 Class<T> 是class 的反射机制这里的<T>应该代表class的类型集合。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧