- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我编译我的类时,我收到这些警告:
Note: JSONLoader.java uses unchecked or unsafe operations
Note: Recompile with -xLint:unchecked
该类非常简单:
class JSONLoader<T>{
public T loads(String file_name){
JSONParser parser = new JSONParser();
Object obj = null;
try{
obj = parser.parse(new FileReader(file_name));
}
catch(Exception e){
e.printStackTrace();
}
return (T) obj;
}
}
我应该补充一点,此类应该返回 JSONObject
或 JSONArray
(取决于文件的内容),并且这些对象类型不兼容。
最佳答案
问题是,通过您的方法,您可以使用 JSONObject x = loader.loads(filename)
并且文件实际上返回一个 JSONArray
。在您的情况下,T
的类型是从返回值的分配中推断出来的,并且此信息将在运行时丢失。
我想说你最好添加两个方法,将两种类型之一定义为返回值,并检查文件内容是否匹配(你不能用你的方法这样做,因为你无法确定T
)。
示例:
JSONObject loadObject( String filename ) {
...
Object obj = parser.parse( xxx );
if( obj instanceof JSONObject ) {
return (JSONObject)obj;
}
else {
throw new IllegalArgumentException( "json root is not a single object");
}
}
JSONArray loadArray(String filename) {
//similar to above
}
或者,例如如果您想要一个方法,您可以创建一个允许两种类型之一的包装器(例如通过构造函数重载)并将检查放入该包装器中(或提供诸如 isArray() 等之类的东西) .).
关于java - 如何避免本例中的 "Recompile with -xLint:unchecked",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33167790/
当我构建我的项目时,我收到如下错误: [INFO] SomeClass.java: Some input files use or override a deprecated API. [INFO]
我在服务器启动时看到以下 Spring 框架异常 ** > Initialization of bean failed; nested exception is > java.lang.Illegal
scalax -Xlint 帮助提供以下信息: $ scalac -Xlint:help Enable or disable specific warnings adapted-args
我试图从一开始就保持一个非常干净和严格设置的项目,包括: 使用 the Checker Framework . 启用所有编译器警告并将它们视为错误( -Xlint:all 和 -Werror )。 使
这个问题已经有答案了: Java: Array of List (3 个回答) 已关闭 4 年前。 我收到编译错误。 “警告:[未选中]未选中的转换” ArrayList[] regionTroops
在编写了一个很长的 GUI 程序并在 Eclipse 中获得正确的结果之后,最可怕的错误是在终端中运行 seam 程序,并通过看到此错误而感到害怕: Note: ./au/edu/uow/UserIn
这个问题在这里已经有了答案: What causes javac to issue the "uses unchecked or unsafe operations" warning (12 个答案
我想知道使用 -Xlint 编译是否会对构建过程或项目产生一些负面影响? 如果没有,为什么 java 编译器默认没有打开这个功能? 我可以打开所有警告,甚至在构建应用程序的发布版本期间忘记这一点吗?
我的软件构建使用 -Xlint -Werror,所以我经常遇到编译器警告,这些警告会破坏我的构建。每隔一段时间我就会遇到一个需要抑制的警告,但总是很难弄清楚是哪个 Xlint 选项抑制了我看到的警告。
在 NetBeans 中清理和构建我的项目时,有一个警告说“不安全的操作”,所以我使用 -Xlint:unchecked 来查看这些操作,但我不明白我做错了什么。这些是警告,然后是我的代码,谢谢! U
当我有一个覆盖父类(super class)方法但未指定 @Override 注释的类时,我试图让我的 java 构建失败。 构建是通过 ant 完成的,我已将以下元素添加到我的 中任务: un
我正在尝试让 Maven 输出 lint 级别警告。我创建了一个小型测试程序,它应该生成关于从非静态上下文使用静态方法的警告,但是尽管有许多不同的插件配置选项,构建总是成功而没有任何警告! 谷歌搜索后
我已经处理这个问题一个星期了,虽然我找到了一些答案,但似乎没有一个能解决我程序的问题。 我不断收到这条消息: Note: Triangle.java uses unchecked or unsafe
基本上,有2个框架:“StartUpFrame”和“ActivityScreen” StartUpFrame是使用纯 Netbeans GUI 制作的,而ActivityScreen是通过编码而不使用
当我编译我的类时,我收到这些警告: Note: JSONLoader.java uses unchecked or unsafe operations Note: Recompile with -xL
我有一个带有 Maven 编译器插件的 Maven 项目,我想使用 -Xlint:overrides作为 java 编译器的选项,所以我将这一行添加到 maven 编译器插件 -Xlint:overr
我的程序似乎很合我意。但是,当我编译它时,我收到了这条消息: Note: Program.java uses unchecked or unsafe operations. Note: Recompi
我不断在 BlueJ/Java 中收到此消息。 http://cache.gyazo.com/19c325e77bbc120892d1035dcfda5377.png 我知道 StackOverflo
我有这门课,在src/main/java/RawTypes.java : import java.util.*; public class RawTypes { private List raw;
所以当我编译我的 android 应用程序时,我几乎总是会收到这样的消息: [javac] Note: /home/kurtis/sandbox/udj/androidApp/src/org/klnu
我是一名优秀的程序员,十分优秀!