首页 > 编程语言 >java 关于-Xlint:unchecked 重新编译

java 关于-Xlint:unchecked 重新编译

时间:2022-09-25 18:11:58浏览次数:51  
标签:java ArrayList db gradle Xlint EmployeeDB 警告 unchecked

有时候我们在编译的时候会遇到警告

>>>>>使用了未经检查或不安全的操作。

注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

<<<<<<

根据提示是类型的转换类型不安全导致

可能的原因是

class EmployeeDB {
    public ArrayList getList() {
        ArrayList<String> list = new ArrayList<String>();
        list.add(0, "kkqqq");
        list.add("sss");

        return list;
    }
}

然后有如下的调用
        EmployeeDB db = new EmployeeDB();
        ArrayList<String> al = db.getList();

getList返回的类型其实是ArrayList<Object>,也就是说将ArrayList<Object>转为了ArrayList<String>

老是弹出这样子的警告总是不舒服的,那么该如何解决这样子的警告呢?

一、最安全的做法是知道所有的警告位置然后去消除这些不安全的类型转换

1、如果使用gradle的方式,则可以在Project的build.gradle中加入如下的代码

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

然后重新编译则可以看到所有原本警告的提示变成了错误的提示;注:本人也不知道为啥在Project的build.gradle中加入这些代码会出现错误提示,坐等大神解答

 

二、可能只是觉得这个提示很烦人,所以想将这个警告提示给去掉

1、使用gradle方式在对应的子模块的build.gradle中加入

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

则该模块中的所有unchecked警告都会去除

2、如果某些代码已经是老代码了导致无法再修改了,那么可以使用@SuppressWarnings("unchecked")

在对应的类型不安全的代码转换位置进行设置

        EmployeeDB db = new EmployeeDB();
        @SuppressWarnings("unchecked") ArrayList<String> al = db.getList();

 

标签:java,ArrayList,db,gradle,Xlint,EmployeeDB,警告,unchecked
From: https://www.cnblogs.com/czwlinux/p/16728398.html

相关文章