You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java开发中如何无警告返回泛型类型对应的Class对象

问题解决方案

Java泛型基于类型擦除实现,运行时泛型参数会被抹除,ChoiceBox.class本身的静态类型为Class<ChoiceBox>,无法直接匹配Class<ChoiceBox<?>>的返回类型要求,可通过两次强制类型转换配合注解实现无警告返回:

@SuppressWarnings("unchecked")
public Class<ChoiceBox<?>> getApplicableClass() {
    return (Class<ChoiceBox<?>>) (Class<?>) ChoiceBox.class;
}

原理说明

  • 直接将Class<ChoiceBox>强转为Class<ChoiceBox<?>>会触发编译类型不兼容报错,先转成无边界通配的Class<?>可绕过该校验
  • @SuppressWarnings("unchecked")用于消除强制类型转换触发的unchecked警告,该转换是安全的:所有带不同泛型参数的ChoiceBox<T>运行时对应的Class对象都是同一个ChoiceBox.class

内容的提问来源于stack exchange,提问作者Mumrah81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:15:07