java泛型的问题

classGen<T>{privateTo;publicGen(Ta){this.o=a;}publicvoidshowTypeName(){System.out.pri... class Gen<T>
{
private T o;
public Gen(T a)
{this.o=a;}
public void showTypeName()
{
System.out.println("类型是:"+o.getClass().getName());
}
}
Dog dog1=new Dog();
Dog dog2=new Dog();
Gen<Dog> gen1=new Gen<Dog>(dog1);
Gen gen2=new Gen(dog2);
gen1.showTypeName();
gen2.showTypeName();

两个都能输出数据类型,有什么区别?
Gen<Dog> gen1=new Gen<Dog>(dog1);
Gen gen2=new Gen(dog2);

这两有什么区别,第二个简单,为什么大家都用第一个。而且第二个系统会提示:
Multiple markers at this line
- Gen is a raw type. References to generic type Gen<T> should be
parameterized
- Type safety: The constructor Gen(Object) belongs to the raw type Gen.
References to generic type Gen<T> should be parameterized
- Line breakpoint:Demo2 [line: 21] - main(String[])
- Gen is a raw type. References to generic type Gen<T> should be
parameterized
展开
 我来答
绝耳一玩孩15
2012-10-09 · TA获得超过119个赞
知道答主
回答量:63
采纳率:0%
帮助的人:40.5万
展开全部
如果指定了<Dog> 后面传进去的参数就只能是Dog类型如
Gen<Dog> gen1=new Gen<Dog>(dog1);
但不能传入其他类型,如 Gen<String> gen1=new Gen<String>(new String("test"));

如果没有指定<Dog>则可以传入任何类型如:
Gen gen2=new Gen(dog2);可以
Gen gen2=new Gen(new String("test"));也可以
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绒绒呢
2012-10-09 · 超过15用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:52万
展开全部
使用泛型是规定在类内部的处理时,只用这一个类型,其他的不行。
算是规范一下传进来的参数,只针对一种类型进行处理。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小傻

2018-07-31 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31136
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
下面的方法有泛型的定义,意味着可以接受多种类型。你在上面里面填了string之后就可以运行,同样你填Integer也可以。也就是方法不知道你要传什么类型进来,他来者不拒。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdh17ss5
2012-10-09 · TA获得超过390个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:87.6万
展开全部
泛型的主要作用是在编译期 确保了数据的准确性,,避免运行期报错..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biqidaoer
2012-10-09 · TA获得超过325个赞
知道答主
回答量:234
采纳率:0%
帮助的人:102万
展开全部
我认为没区别。你给我十块钱和你快递给我十块钱没啥区别,当然快递费你付。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式