Java ‘Set<;类别<;?扩展类<&燃气轮机&燃气轮机&燃气轮机;typeSet=resolverUtil.getClasses();`方法
我正在阅读myBatis的一行源代码:Java ‘Set<;类别<;?扩展类<&燃气轮机&燃气轮机&燃气轮机;typeSet=resolverUtil.getClasses();`方法,java,types,mybatis,Java,Types,Mybatis,我正在阅读myBatis的一行源代码: Set<Class<? extends Class<?>>> typeSet = resolverUtil.getClasses(); 设置> 类型如何扩展类?所以它扩展了自己??扩展类指扩展类的任何类。但是,这是多余的,因为java.lang.Class声明为final,因此不能扩展(至少在当前和过去的java版本中是如此)。 因此,声明可以安全地简化为 Set<Class<Class<?>&
Set<Class<? extends Class<?>>> typeSet = resolverUtil.getClasses();
设置>
类型如何扩展类?所以它扩展了自己??扩展类
指扩展类的任何类。但是,这是多余的,因为java.lang.Class
声明为final
,因此不能扩展(至少在当前和过去的java版本中是如此)。因此,声明可以安全地简化为
Set<Class<Class<?>>> typeSet = resolverUtil.getClasses();
你看到的代码真的有扩展类吗?“这看起来像是一个无用之物的配方,”你看。这对函数输出结果没有用。@请看我编辑的答案。即使
Set
也几乎没有用,您可以添加到集合中的所有内容都是java.lang.Class.Class
,所以您的意思是集合最多只包含一项?它允许的唯一类型是Class
;只有一个。换句话说,你不能调用typeSet.add(String.class)
。@ernest\k它可能是专门为类
指定类型的类型的成员,尽管我倾向于使用纠错理论。@TomHawtin tackline很好。。。恰好类
是最终版
,所以该场景受到了严重挑战。一个可能有意义的角落是一个具有多个独立类装入器的环境(对于相同的类/类型,可能有许多class
对象),但这必须非常罕见。
ResolverUtil<class<?>> resolverUtil = new ResolverUtil<>;