java <T>T和T的区别

publicclassTest<T>{privateTt;publicTgetT(){returnt;}publicvoidsetT(Tt){this.t=t;}publ... public class Test<T>{
private T t;
public T getT(){
return t;
}

public void setT(T t){
this.t = t;
}

public T getT2( T t){
return t;

}

public <T> T getT3(T t){
return t;
}

public static void main(String[] args){
Test<String> tt = new Test<String>();
tt.setT("123");
System.out.println(tt.getT());
System.out.println(tt.getT2("111"));
System.out.println(tt.getT3("222"));

}

}
在这里程序能运行,但是getT2和getT3有区别么?希望能详细解释下之间区别.谢谢
展开
 我来答
百度网友2ffcc44
推荐于2017-09-21 · TA获得超过183个赞
知道小有建树答主
回答量:182
采纳率:100%
帮助的人:142万
展开全部
在你这段代码里面是没有区别的,实际上如果是<T>的话,是可以传参数class的,也就是说,如果说你声明Test<T>的对象的时候getT2的返回类型就已经确定了,但是getT3的返回值的类型却可以是你传进来的参数class的类型,也就是说这个方法的返回值的类型可以在你调用方法时候进行设定
198901245631
推荐于2017-10-01 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1750万
展开全部
泛型可以用"<T>"代表,那么前面的T就是泛型类型,后面的参数T表示的是自定义参数。
解释: “<T>”是泛型的默认值,可以被任意类型所代替,如:
List<String> T= new ArayList<String>();这个就定义了一个String类型的”泛型“集合,那么T(前面的)的类型就是字符串。
List<T> T= new ArayList<T>();
可以赋值给T:T.add("StringBatch");
可以获取到list的值:T.get(0),结果就是”StringBatch“;
这个时候T的类型也是String。也就是说T(前面的)是动态的,可以被任意指定类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Null_GGBond
2015-02-09 · 超过18用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:28.4万
展开全部
<T> 代表的是泛型 ,意思就是 你 new 的是什么类型传入的就是什么 类型
Test<String> 这里就是你传入的是 String 类型
所以 private T t;的这个T就是 private String t;
getT2 也就是 public String getT2
getT3 因为<T> 代表的就是 String 所以 也是 public String getT3
其实这两个没区别 只是你写法不同罢了
追问
我感觉好像是在非泛型类里标识为泛型方法的标识,如果类本身是泛型类,就无需这种写法,可以这么理解么?
追答
可以
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-02-09
展开全部
<T>
是泛型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式