Springboot项目install打包

您所在的位置:网站首页 usewith用法 Springboot项目install打包

Springboot项目install打包

2023-04-02 00:04| 来源: 网络整理| 查看: 265

 目录

分析:

方法一、进行参数化(失败): 

方法二、注解忽略警告(成功):

使用 -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