Springboot项目install打包 |
您所在的位置:网站首页 › usewith用法 › Springboot项目install打包 |
目录 分析: 方法一、进行参数化(失败): 方法二、注解忽略警告(成功): 使用 -Xlint:unchecked 编译 再次分析: 方法三、安全的进行强制类型转换(成功): 分析:初步确认是使用java泛型T引起 未经检查或不安全的操作提示。其实并不影响使用,只是有个黄色警告都算不上的提示,但是看着不舒服,也处理下 打包到RedisUtil.java提示: [INFO] /D:xxxxx.java: 某些输入文件使用了未经检查或不安全的操作。 [INFO] /D:xxxxxx.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 方法一、进行参数化(失败):有的说导入了List,没有导入ArrayList,未进行参数化,把 import java.util.List; 改成import java.util.*; 再次打包,无效 方法二、注解忽略警告(成功):在对应的类上加上以下注解,告诉编译器忽略 unchecked 警告信息 @SuppressWarnings("unchecked")打包,成功解决 使用 -Xlint:unchecked 编译但是我们其实更希望是的解决它,而不是忽略它,Unchecked 说严重不严重,但是对整洁代码来说却不能无视的警告 按照他的提示使用 -Xlint:unchecked 编译一次:执行命令: mvn clean compile -Xlint:unchecked如果提示 [ERROR] No plugin found for prefix 'lint' in the current project and in the plugin groups.... 在maven-compiler-plugin中的configuration内部配置-Xlint:unchecked -Xlint:unchecked没有直接添加 org.apache.maven.plugins maven-compiler-plugin -Xlint:unchecked再次install 或者在文件目录下 javac -Xlint:unchecked ListUtil.java 现在可以定位到问题的具体的位置了 再次分析:问题代码如下 (T) listObj.get(i); (List) listObj.get(0); return (T) o;强制转换为通用类型(T)的代码编译提示为未经检查的转换 方法三、安全的进行强制类型转换(成功):原来的封装泛型方法: /** * @Author: szw * @Date: 2020/8/18 16:30 */ public class ListUtil { public static List LstObjToLstEn(List listObj) { List list = new ArrayList(); for (int i = 0; i < listObj.size(); i++) { list.add((T) listObj.get(i)); } return list; } } 更改后: /** * @Author: szw * @Date: 2020/8/18 16:30 */ public class ListUtil { public static List LstObjToLstEn(List listObj, Class clazz) { List list = new ArrayList(); for (Object o: listObj) { list.add(clazz.cast(o)); } return list; } }再次编译,通过 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |