后台声明的对象是父类的,子类的属性注入不进去,主要问题就是怎么把子类属性注入进去 还是传参再判断值,通过重新new子类。通过重写构造方法实现。 public class A { private String attr; public String getAttr() { return attr; } public void setAttr(String attr) { this.attr = attr; } public A() { } } class B extends A { private String attrs; public String getAttrs() { return attrs; } public void setAttrs(String attrs) { this.attrs = attrs; } public B() { } public B(A a, String attrs) { setAttr(a.getAttr()); setAttrs(attrs); } } class C { public static void main(String[] args) { String attrs = "a"; A a = new A(); a.setAttr("aaa"); if (attrs != null) { a = new B(a, attrs); } } } 不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。
后台声明的对象是父类的,子类的属性注入不进去,主要问题就是怎么把子类属性注入进去 还是传参再判断值,通过重新new子类。通过重写构造方法实现。 public class A { private String attr; public String getAttr() { return attr; } public void setAttr(String attr) { this.attr = attr; } public A() { } } class B extends A { private String attrs; public String getAttrs() { return attrs; } public void setAttrs(String attrs) { this.attrs = attrs; } public B() { } public B(A a, String attrs) { setAttr(a.getAttr()); setAttrs(attrs); } } class C { public static void main(String[] args) { String attrs = "a"; A a = new A(); a.setAttr("aaa"); if (attrs != null) { a = new B(a, attrs); } } } 不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。主要是后台分属性的话十几个字段实在受不了,最坏的情况还是分action提交吧,不过总觉得要是可以改struts2的注入类型就会方便很多了。
还是传参再判断值,通过重新new子类。通过重写构造方法实现。
public class A {
private String attr;
public String getAttr() {
return attr;
}
public void setAttr(String attr) {
this.attr = attr;
}
public A() {
}
}
class B extends A {
private String attrs;
public String getAttrs() {
return attrs;
}
public void setAttrs(String attrs) {
this.attrs = attrs;
}
public B() {
}
public B(A a, String attrs) {
setAttr(a.getAttr());
setAttrs(attrs);
}
}
class C {
public static void main(String[] args) {
String attrs = "a";
A a = new A();
a.setAttr("aaa");
if (attrs != null) {
a = new B(a, attrs);
}
}
}
不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。
还是传参再判断值,通过重新new子类。通过重写构造方法实现。
public class A {
private String attr;
public String getAttr() {
return attr;
}
public void setAttr(String attr) {
this.attr = attr;
}
public A() {
}
}
class B extends A {
private String attrs;
public String getAttrs() {
return attrs;
}
public void setAttrs(String attrs) {
this.attrs = attrs;
}
public B() {
}
public B(A a, String attrs) {
setAttr(a.getAttr());
setAttrs(attrs);
}
}
class C {
public static void main(String[] args) {
String attrs = "a";
A a = new A();
a.setAttr("aaa");
if (attrs != null) {
a = new B(a, attrs);
}
}
}
不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。主要是后台分属性的话十几个字段实在受不了,最坏的情况还是分action提交吧,不过总觉得要是可以改struts2的注入类型就会方便很多了。