Java Velocity模板中子类的访问方法
我有以下课程:Java Velocity模板中子类的访问方法,java,velocity,Java,Velocity,我有以下课程: public abstract class A{ private String s; public void setS(String s){ this.s=s; } public String getS(){ return this.s; } } public class B extends A{ private String s2; public void setS2(String s2){
public abstract class A{
private String s;
public void setS(String s){
this.s=s;
}
public String getS(){
return this.s;
}
}
public class B extends A{
private String s2;
public void setS2(String s2){
this.s2=s2;
}
public String getS2(){
return this.s2;
}
}
public class C{
private A a;
public setA(A a){this.a = a;}
public getA(){return this.a;}
}
我创建了两个对象:
B b = new B();
b.setS("some string");
C c = new C();
c.setA(b);
将对象加载到速度模板中时:
My Template
$c.a.getS()
我得到以下输出:
My Template
$c.a.getS()
而不是它应该是:
My Template
some string
似乎Velocity不知道如何加载从超类继承的模板方法。
这是真的吗?或者我在这里遗漏了什么。我一直在玩弄这个问题,我想出了一个解决方案。 为使其正常工作,我做了以下更改:
protected String s;
public abstract void setS(String s);
public abstract String getS();
我一直在玩弄这个问题,我想出了一个解决办法。 为使其正常工作,我做了以下更改:
protected String s;
public abstract void setS(String s);
public abstract String getS();