代碼A很好,我認爲代碼B可以正常工作,但事實上,代碼B無法正常工作。爲什麼?爲什麼我不能在Java中的函數中創建對象?
爲什麼我無法在功能private void SetField(Context mContext,MAtt aField,String name)
中創建對象?
代碼A
public class MURLPar {
public MAtt diskcount=new MAtt();
public MAtt diskindex=new MAtt();
public MURLPar(Context mContext){
SetField(mContext,diskcount,"Pardiskcount");
SetField(mContext,diskindex,"Pardiskindex");
}
public class MAtt {
public String name;
public String value;
}
private void SetField(Context mContext,MAtt aField,String name){
int id = mContext.getResources().getIdentifier(name, "string", mContext.getPackageName());
aField.name=mContext.getString(id);
}
}
代碼B
public class MURLPar {
public MAtt diskcount;
public MAtt diskindex;
public MURLPar(Context mContext){
SetField(mContext,diskcount,"Pardiskcount");
SetField(mContext,diskindex,"Pardiskindex");
}
public class MAtt {
public String name;
public String value;
}
private void SetField(Context mContext,MAtt aField,String name){
aField=new MAtt(); //Create object
int id = mContext.getResources().getIdentifier(name, "string", mContext.getPackageName());
aField.name=mContext.getString(id);
}
}
什麼是'亞光'的接口
如果你想要的東西,像一個out參數,你可以通過返回一個新創建的對象模擬出? –
錯誤是什麼意思? – Shaishav
該問題沒有明確定義:「代碼B無法正常工作」。但這不是編譯錯誤。這可能是一個業務邏輯錯誤。 – NangSaigon