Java 中这个警告如何解决?

写了一个类型转换,结果 idea 有黄色警告,不知道如何解决了,刚从 C# 转 java,不太了解,请熟悉 java 的帮解决下。

不是那种加个注解强制不检查或关闭 idea 的语法检查的方案。

Subject subject = SecurityUtils.getSubject();
Map<String, Object> u = (Map<String, Object>) subject.getSession().getAttribute("currUser");

图片描述

提示内容:

Unchecked cast: 'java.lang.Object' to 'java.util.Map<java.lang.String,java.lang.Object>'
阅读 10.1k
2 个回答

这个没办法,因为 getAttribute 的签名里返回值就只是个 Object

又由于 Java 对泛型的实现问题,要么你这里 u 的声明改为 Map u = (Map) subject.***,如果你能接受这样的话。

这种不影响使用,只是看着不爽而已,方法外面可以带上@SuppressWarnings("unchecked")注解,如下

    @SuppressWarnings("unchecked")
    public void test() {
        ...
        Subject subject = SecurityUtils.getSubject();
        Map<String, Object> u = (Map<String, Object>) subject.getSession().getAttribute("currUser");
        ...
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏