Java 反射、断言与注解:深入解析与实践
反射机制新特性
反射包经过改进,能够为参数化类型和方法提供参数信息。例如,可向类发送 getTypeParameters 消息,以获取 TypeParameter 对象数组,每个 TypeParameter 对象都包含足够信息来重构类型参数。
为支持这些更改,Java 字节码规范也做了相应调整。类文件现在会存储有关类型参数的额外信息,其中最重要的是 Class 类被修改为参数化类型 Class<T> ,如下赋值操作是可行的:
Class<String> klass = String.class;
若想了解其具体用法,可查看 CheckedCollection 类的源代码,它是 java.util.Collections 的静态内部类。
不过,反射虽能提供参数化类型和方法声明的信息,但无法提供类型变量绑定的信息。例如,将 ArrayList 绑定到 String 类型,由于擦除机制, ArrayList 对象并不知道这一绑定信息,反射也就无法提供该信息。像下面的代码就无法正常工作:
public class MultiHashMa
超级会员免费看
订阅专栏 解锁全文
1108

被折叠的 条评论
为什么被折叠?



