如何解决java中“使用了未经检查或不安全的操作 请使用 -Xlint:unchecked 重新编译 ”的问题

导语:叶子写了一个Gradle构建的Spring Boot的项目,在IntelliJ IDEA的Terminal中使用命令Gradle build编译时提示:“ResultUtil.java使用了未经检查或不安全的操作。”

问题

注: D:\Javaorg\hx\src\main\java\com\cddx\hx\utils\ResultUtil.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

解决方法

一、更新代码

更新代码,更改代码为泛型使用方式,使用 Result<Object>、List<Object>的实例能接受任何类型的对象,修改前代码如下:

public class ResultUtil {

/** 成功且带数据 **/
public static Result success(Object object) {
Result result = new Result();
result.setCode(ResultEnum.SUCCESS.getCode());
result.setMsg(ResultEnum.SUCCESS.getMsg());
result.setData(object);
return result;
}

/** 成功但不带数据 **/
public static Result success() {

return success(null);
}

/** 失败 **/
public static Result error(Integer code, String msg) {
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;
}
}

修改后的代码为:

public class ResultUtil {

/** 成功且带数据 **/
public static Result<Object> success(Object object) {
Result<Object> result = new Result<Object>();
result.setCode(ResultEnum.SUCCESS.getCode());
result.setMsg(ResultEnum.SUCCESS.getMsg());
result.setData(object);
return result;
}

/** 成功但不带数据 **/
public static Result<Object> success() {

return success(null);
}

/** 失败 **/
public static Result<Object> error(Integer code, String msg) {
Result<Object> result = new Result<Object>();
result.setCode(code);
result.setMsg(msg);
return result;
}
}

二、修改build.gradle文件,添加下面的配置,这样在编译的时候,就能看到详细的错误提醒了。

allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}

看到详细的错误提醒后,还是要更新代码才可以的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注