为了账号安全,请及时绑定邮箱和手机立即绑定

从 X 到扩展 X 的泛型类型的未经检查的强制转换

从 X 到扩展 X 的泛型类型的未经检查的强制转换

红糖糍粑 2022-06-15 09:25:51
我的任务@SupressWarning是在我们的代码库中删除尽可能多的 s,但我不确定如何解决这个特定问题。我有这个返回对象的外部方法,以及我想将对象转换为Serializable的泛型类型。T extends Serializable这是代码的简化版本:class A <T extends Serializable> {    public T someMethod() {        Serializable result = someExternalMethod(...);        T convertedObject = (T) result; // produces unchecked cast warning        return convertedObject;    }}是否可以在不产生未经检查的强制转换警告的情况下执行此转换(假设无法更改外部方法)?这是Java 8。
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

要扩展ferpel的答案,您可以将类型作为参数传递


    class A <T extends Serializable> {


        public T someMethod(Class<T> type) {

            Serializable result = someExternalMethod(...);

            return type.cast(result);

        }

    }


查看完整回答
反对 回复 2022-06-15
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

尝试将产生未经检查的强制转换警告的行替换为

T convertedObject = anyClassYouWant.cast(result);


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信