应避免将通配符用作返回类型,因为这会强制使用代码的程序员处理通配符。
Object
的getClass
方法返回一个Class<?>
对象。在Class
中的各种方法接受Class<?>
,如果您传入一个Class
,编译器将返回未经检查的警告。这导致我认为始终使用Class<?>
是可取的。
如果我有一个返回Class
的方法,并且我不知道该对象将如何使用,我应该返回哪种类型的类Class
或Class<?>
?为什么?是否存在某些情况,我可能只想返回Class
?
应避免将通配符用作返回类型,因为这会强制使用代码的程序员处理通配符。
Object
的getClass
方法返回一个Class<?>
对象。在Class
中的各种方法接受Class<?>
,如果您传入一个Class
,编译器将返回未经检查的警告。这导致我认为始终使用Class<?>
是可取的。
如果我有一个返回Class
的方法,并且我不知道该对象将如何使用,我应该返回哪种类型的类Class
或Class<?>
?为什么?是否存在某些情况,我可能只想返回Class
?
使用 MyType<?>
总是比使用原始类型的 MyType
更可取(这也适用于 Class
)。指南认为新代码不会使用原始类型,原始类型仅出于向后兼容性而支持。他们并不建议您在最佳情况下使用 ?
时放弃泛型。
通过使用通配符参数,泛型的编译时类型安全保证仍然存在。这些保证仅存在于没有强制转换和原始类型的情况下。