Ita*_*Gal 10 java eclipse generics json
我有一些数据存储在Java元素中,我需要以给定的格式返回它 - JSONObject.虽然我的实现工作正常,但我仍然收到来自eclipse的警告消息(版本:Juno Service Release 2):
" 类型安全:方法put(Object,Object)属于原始类型HashMap.对泛型类型HashMap的引用应该参数化 "
这是我的代码:
public interface Element {...}
public abstract class AbstractElement implements Element {...}
public final class Way extends AbstractElement {...}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class WayToJsonConverter{
...
public JSONObject wayToJson(){
JSONObject obj = new JSONObject();
obj.put("id",way.getId());
...
return obj;
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题在于: obj.put("id",way.getId());
除了添加之外,有没有办法解决这个问题@SuppressWarnings("unchecked")
?
lte*_*ean 14
你的JSONObject是什么,它是从HashMap继承的吗?如果是,warn可能意味着你应该声明JSONObject实例,如下所示:
JSONObject<String,Object> obj=new JSONObject<String,Object>();
Run Code Online (Sandbox Code Playgroud)
更新:查看JSONObject的定义:
public class JSONObject extends HashMap
Run Code Online (Sandbox Code Playgroud)
它扩展了HashMap但不支持参数类型,如果它的定义是
public class JSONObject<K,V> extends HashMap<K,V>
Run Code Online (Sandbox Code Playgroud)
然后我们可以写
JSONObject<String,Object> obj=new JSONObject<String,Object>();
Run Code Online (Sandbox Code Playgroud)
并且put方法将不再生成警告
归档时间: |
|
查看次数: |
26531 次 |
最近记录: |