我面臨一個很奇怪的錯誤,我無法解釋傳承,也許你可以幫我:奇怪的錯誤日誌在Java(Android版)
我與JSON工作,我有包裝類在像一個JSON的響應代碼{ 「代碼」: 「0」}:
public class Container {
int responseCode=0;
protected int _object_id=0;
public Container(String fromJSON){
_object_id=new Random().nextInt();
try {
setWithJSON(fromJSON);
} catch (Exception e) {
e.printStackTrace();
responseCode=-1;
}
}
protected JSONObject setWithJSON(String input) throws Exception{
JSONObject json = new JSONObject(input);
responseCode = json.getInt("code");
return json;
}
}
延伸的I類有另一個類用於包裹響應代碼+的網址:{ 「代碼」:「0 「,」url_tag「:」http://good.url.com「}:
public class URLContainer extends Container {
private final String TAG="Test";
private String _url = "default_url";
public URLContainer(String fromJSON) {
super(fromJSON);
}
@Override
protected JSONObject setWithJSON(String input) throws Exception {
JSONObject json= super.setWithJSON(input);
_url=json.optString("url_tag", "no_url");
getUrl(); //Just for print the pointB
Log.e(TAG,"Point A ("+_object_id+"): url="+_url);
return json;
}
public String getUrl() {
Log.e(TAG,"Point B ("+_object_id+"): url="+_url);
return _url;
}
public void setUrl(String url) {
_url = url;
}
}
以及活動類:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String json="{\"code\":\"0\",\"url_tag\":\"http://good.url.com\"}";
URLContainer container = new URLContainer(json);
Log.e("adsads",""+container.getUrl());
}
和生成的日誌是:
E/Test(20264): Point B (-569874754): url=http://good.url.com
E/Test(20264): Point A (-569874754): url=http://good.url.com
E/Test(20264): Point B (-569874754): url=default_url
E/Final(20264): default_url
爲什麼最終的調用返回的DEFAULT_URL而不是一個好?
有什麼奇怪的?預期的行爲是什麼? – aioobe 2012-02-27 12:09:50
預期的行爲應始終爲url =「http://good.url.com」。不是嗎? – Addev 2012-02-27 12:12:51
這是我的問題重複: http://stackoverflow.com/questions/9391231/member-not-initialized-in-child-class – pengguang001 2012-02-27 12:56:08