我有一個引用兩個子對象的對象,並將其返回給視圖,就像我使用其他變量一樣。無法從Play框架模板訪問嵌套的對象
public class Object1 extends ArrayList<Object2> {
private List<Object2> obj2 = new ArrayList<Object2>;
private Object3 obj3;
public List<Object2> getObject2() {
return this.obj2;
}
public Object3 getObject3() {
return this.obj3;
}
@Override
public boolean add(Object2 o2) {
//some other code goes here
return super.add(o2);
}
}
public class Object2 {
int applianceId;
String status;
}
public class Object3 {
int member3;
String member4;
}
Object1被分配給我的模板中的變量obj1。問題是,如果我撥打getObject2()
,我什麼也沒得到,雖然我可以訪問getObject3()
就好了。真奇怪的是,如果我在沒有getter的情況下訪問obj1,它將包含應該返回getObject2()
的所有內容。
所以,我希望這個工作,但它並不:
@for(a <-obj1.getObject2()){
@a.member1
@a.member2
}
它沒有返回。
但是,這並從對象2返回數據:
@for(a <-obj1){
@a.applianceId
@a.status
}
的結果是:3046綠色3066綠色3086綠色3126紅3166紅3026紅3146紅
任何人都可以解釋爲什麼出現這種情況以及如何糾正它?
你能否提供編譯器錯誤!? – akkie 2014-10-17 08:33:27
這沒有意義。 1)你有兩個同名的私人領域; 2)你的領域是私人的,沒有setters /參數構造函數:這些領域如何分配? – Salem 2014-10-17 10:23:46
沒有編譯器錯誤,也沒有運行時錯誤。我的期望是,如果我有兩個getter,我應該能夠從視圖中調用它們並檢索它們的內容,但這不會發生。 我可以通過它的getter檢索對象。另一個對象的內容是PARENT對象本身的一部分,而不是getter。這是不正確的行爲。 我也更正了上面示例代碼中的一個錯誤。 – bitstream 2014-10-17 13:54:31