【发布时间】:2016-02-29 06:59:54
【问题描述】:
注意:这不是我已经在下面链接到的问题的重复。显然,我在发布之前先阅读了该问题/答案,并且没有以任何形式回答我的问题。
这个链接的问题确实更详细地解释了为什么泛型类存在。但是,在我的情况下,我没有得到关于 Class 的好处的具体答案。
What does the generic nature of the class Class<T> mean? What is T?
我编写了一个实用方法,它接受 Class 类型的参数 'cl' 并使用 cl.isInstance(objectInstance) 方法执行逻辑。
但是,我看到了使用通用通配符 Class<?> 声明参数的示例代码。
为什么不使用没有通用通配符的 Class 呢? Class 不能代表所有可能的类类型,包括泛型?如果在我的情况下使用 Class<?> 有什么好处?
现有相关问题(见下文)中接受的答案实际上并没有提供有用的答案。
【问题讨论】:
-
接受的答案完美地描述了这种情况。如果你对此不满意,那是不幸的。 “好处”是您将编写语法正确的代码并且不会收到警告。
-
不,没有!请阅读已接受问题下的 cmets。我的问题是使用 Class> 而不是 Class 有什么好处。我正在努力学习这一点。我正在从具有 System.Type 类但没有 System.Type 的 .NET 迁移到 Java。这是一个完全合理的问题。投票重新开放。
-
我告诉过你没有任何好处。这是语法要求,因为
Class是通用的。我没有说这不是一个合理的问题,我只是说答案已经有效。.NET没有System.Type<>的事实无关紧要。 -
Netbeans 8.1 在我使用 Class cl 作为参数的地方没有给出警告,所以这甚至不正确。我没有关闭任何警告。
-
好吧,我的 Eclipse 在使用
Class时正确地警告原始类型,所以无论如何你都错了。
标签: java class reflection