为什么每次编译时都会出现"使用未经检查或不安全的操作"错误?代码有什么问题?我复制了本教程中完全相同的代码http://www.mkyong.com/java/json-simple-example-read-and-write-json/
import java.io.FileWriter;
import java.io.IOException;
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonSimpleExample {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
JSONArray list = new JSONArray();
list.add("msg 1");
list.add("msg 2");
list.add("msg 3");
obj.put("messages", list);
try {
FileWriter file = new FileWriter("c:\\test.json");
file.write(obj.toJSONString());
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*ley 43
该uses unsafe or unchecked operations警告显示,当你执行Java编译器将考虑到缺乏的错误检查,或以某种方式可能不安全的代码.但是,这是一个警告,而不是错误,并且不会阻止您的代码编译 - 大型项目通常会在警告后生成警告,您可以自由决定是否值得采取行动.如果您想深入了解导致警告触发的内容,可以.java使用语法重新编译文件,javac -Xlint:unchecked yourfilename.java编译器将为您提供有关导致错误的确切原因的更详细信息.
根据我的经验,这种警告通常可以通过使用类似ArrayList的东西而不指定它应该保持的类型(即使用ArrayList a = new ArrayList()而不是ArrayList<String> a = new ArrayList<String>())来引起.在我的示例中,编译器警告您,您的代码不会检查您添加到它的值是否为任何特定类型.在生产应用程序中,指定类型可能会很好,但在测试应用程序中,如果您不关心它们,则可以自由地忽略警告.
| 归档时间: |
|
| 查看次数: |
64900 次 |
| 最近记录: |