Java泛型求助

Chrix9 2020-02-27 03:42:54

package day2_24;

public class Test<T> {

private T t;
public void set() {
t = 1;
}
}

set方法将1赋值给t的时候会出现问题:Type mismatch: cannot convert from int to T
请问我怎么才能在方法里将1赋值给t?
...全文
42 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
percentfl 2020-02-27
  • 打赏
  • 举报
回复
课本上的大多都是泛型,但是实际你自己测试的时候,其实并没必要完全像课本上的一样输入泛型T,最好是用个自己知道的类型(简单的比如Integer、String,或者自己定义类),我觉得这样在初学时候反而简单一点。
以上纯属个人经验
qybao 2020-02-27
  • 打赏
  • 举报
回复
做不到,既然是泛型,你怎么保证T就是数值类型(比如T可以是Array,List,Set等等,怎么把1赋给它呢)?如果已经知道T是数值型,那何必还要泛型?你这不是矛盾吗?
应该通过set的参数来设定
public void set(T t) {
this.t = t;
}

使用的时候
Test<Integer> t = new Test<>();
t.set(1); //这样是可以的

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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