我有一个界面Parseable
。其中我有方法应该返回实现方法的对象。说,
P1 implements Parseable {
P1 fromJson(JSONObject){}
}
它使用以下签名给出不安全类型警告。我该如何解决?
<T> T fromJson(JSONObject)
答案 0 :(得分:4)
使界面本身是通用的而不是方法。
将Parseable
声明为:
public interface Parseable<T> {
public T fromJson(JSONObject obj);
}
P1
:
public class P1 implements Parseable<P1> {
@Override
public P1 fromJson(JSONObject obj){}
}
答案 1 :(得分:2)
好。界面需要看起来像
public interface Parseable<T> {
T fromJson(JSONObject json);
}
您的课程如下:
public class P1 implements Parseable<P1> {
@Override public P1 fromJson(JSONObject json) { ... }
}
答案 2 :(得分:1)
public interface Parseable<T> {
T fromJson(JSONObject js);
}
P1 implements Parseable<P1> {
P1 fromJson(JSONObject js) { ... }
}