class在java中_Class <?>在Java中意味着什么?

问题

问题如上,对不起它可能是重复但我找不到最终的>的例子。

为什么你不只是使用Class作为参数?

#1 热门回答(80 赞)

Class是一个可参数化的类,因此你可以使用syntaxClass其中T是一个类型。通过写Class>,你宣布aClass对象可以是任何类型(?是通配符)。 Classtype是包含有关类的元信息的类型。

通过指定他的特定类型来引用泛型类型总是很好的做法,通过使用Class>你是否尊重这种做法(你知道Class可以参数化)但你并不限制你的参数具有特定类型。

#2 热门回答(50 赞)

This>是一个野兽。它经常导致混乱和错误,因为,当你第一次看到它,然后你开始相信,>是一个通配的forany java类型。这是..不是真的.>is未知类型,一个轻微和讨厌的区别。

使用Class时,这不是问题。这两行都可以工作和编译:

Class anyType = String.class;

Class > theUnknownType = String.class;

但是-如果我们开始将它与集合一起使用,那么我们会看到奇怪的编译时错误:

List> list = new ArrayList(); // ArrayList> is not allowed

list.add("a String"); // doesn't compile ...

OurList>不是一个集合,适用于任何类型的对象。它只能存储一种类型:神秘的"未知类型"。当然,这不是真正的类型。

#3 热门回答(6 赞)

这意味着你的Class引用可以包含对任何Class对象的引用。

它与"类"基本相同,但是你向其他人展示了你没有忘记泛型的代码,你只需要一个可以容纳任何Class对象的引用。

布鲁斯·埃克尔,思考Java:

在Java SE5中,Class 比普通类更受欢迎,即使它们是等效的,如你所见,普通类也不会产生编译器警告。 Class 的好处在于它表明你不仅仅是偶然使用非特定类引用,也不是出于无知。你选择了非特定版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值