java - 如何解决编译器警告
问题描述
我有这个编译器警告:在上面的代码上使用未经检查或不安全的操作
new InsertAllTask(essenceDao).execute(essenceList)
但我不知道为什么,我尝试使用 -Xlint 参数运行,没有更多信息。
代码有效,但警告仍然存在。
希望你能帮忙
整个任务:
public static class DeleteAllTask extends AsyncTask<Void, Void, Void> {
private final EssenceDao essenceDao;
private final List<Essence> essenceList;
DeleteAllTask(EssenceDao essenceDao, List<Essence> list) {
this.essenceDao = essenceDao;
this.essenceList = list;
}
@Override
protected Void doInBackground(Void... voids) {
essenceDao.deleteAllEssence();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if (essenceList != null) {
// Insert new list
new InsertAllTask(essenceDao).execute(essenceList);
}
}
}
插入任务:
public static class InsertAllTask extends AsyncTask<List<Essence>, Void, Void> {
private final EssenceDao essenceDao;
InsertAllTask(EssenceDao essenceDao) {
this.essenceDao = essenceDao;
}
@Override
@SafeVarargs
protected final Void doInBackground(List<Essence>... essences) {
essenceDao.insertEssence(essences[0]);
return null;
}
}
解决方案
由于您试图在(-Xlint)
不修复警告源的情况下抑制警告,因此可以将此注释添加到包含不安全代码的方法中:
@SuppressWarnings({"unused", "rawtypes"})
例子
上面的代码:
public class TestUnsafe {
public static void main(String[] args) {
List myList = new ArrayList();
}
}
当我尝试编译时显示这些警告:
javac TestUnsafe.java -Xlint
TestUnsafe.java:7: warning: [rawtypes] found raw type: List
List myList = new ArrayList();
^
missing type arguments for generic class List<E>
where E is a type-variable:
E extends Object declared in interface List
TestUnsafe.java:7: warning: [rawtypes] found raw type: ArrayList
List myList = new ArrayList();
^
missing type arguments for generic class ArrayList<E>
where E is a type-variable:
E extends Object declared in class ArrayList
2 warnings
但是,使用几个注释:
public class TestUnsafe {
@SuppressWarnings({"unused", "rawtypes"})
public static void main(String[] args) {
List myList = new ArrayList();
}
}
javac TestUnsafe.java -Xlint
返回一个空的编译日志。
与我们分享一个最小的可重现示例,以找到正确的注释或修复它!
推荐阅读
- python - 如何解决 LSTM 问题中的损失:nan & accuracy: 0.0000e+00?张量流 2.x
- php - Vscode 上的断点没有被流明框架击中
- google-apps-script - 修改代码 - 将 onEdit 转换为自定义菜单以运行 - Google Apps 脚本/Google 表格
- android - 当小部件提供者意图过滤器只有更新操作时,为什么会收到其他意图操作(Android)
- unity3d - 在 Unity 的背景层上运行大规模克隆的最佳方法是什么?
- android - 具有固定高度视图和其他填充空间的 Android 约束布局链
- android - React Native - Appium Studio 在导航到新屏幕时在 Android 上的视图层次结构中显示以前的屏幕组件
- java - Jasper Chart Customizer 根据类别值显示垂直线
- jenkins - Jenkins 仅每 8 次提交触发构建 - 如何执行此操作?
- git - 测试与 git 的 SSH 连接提示密码