gpt4 book ai didi

java - `Set>> typeSet = resolverUtil.getClasses();` 是什么意思?

转载 作者:行者123 更新时间:2023-12-04 10:52:42 25 4
gpt4 key购买 nike

我正在阅读 myBatis 的一行源代码:

Set<Class<? extends Class<?>>> typeSet = resolverUtil.getClasses();

我不明白是什么 Class<? extends Class<?>> ?

怎么能有类型 ?扩展 Class<?> ?所以它自我延伸?

最佳答案

? extends Class<?>表示扩展类 java.lang.Class 的任何类.然而,这是多余的,因为 java.lang.Class已声明 final因此不能扩展(至少在当前和过去的 Java 版本中)。
所以声明可以安全地简化为

Set<Class<Class<?>>> typeSet = resolverUtil.getClasses();

编辑

myBatis 类的方法签名 ResolverUtil如下:
public Set<Class<? extends T>> getClasses()
是的, ResolverUtil参数化本身。它接受一个通用参数 T那是一个可能有子类的类。 getClasses()将返回 Class 的部分或全部类型层次结构的类型( T 对象) .问题中的行将是以下声明的结果:
ResolverUtil<class<?>> resolverUtil = new ResolverUtil<>;

关于java - `Set<Class<? extends Class<?>>> typeSet = resolverUtil.getClasses();` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59392013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com