从昨天开始,我一直在寻找一种方法来做到这一点。我拥有的是来自第三方的数百个POJO,并且需要根据业务规则对这些POJO应用属性。我正在避免改变POJO,因为第三方可能会重新创建它们,因此造成管理文件的恶梦。JAVA是否可以动态地让一个类扩展另一个类?
我试图做的是动态地让一个类扩展另一个类。例如, 。
POJO:Foo.java
package abc.service;
public class Foo {
private String greeting = "";
public Foo(){
gretting = "Good morning";
}
public String getGreeting(){
return greeting;
}
}
// end file
矿:Bar.java
package abc.service;
public class Bar {
private String claim = "";
public Bar(){
claim = "You're correct";
}
public String getClaim(){
return claim;
}
}
// end file
矿:TestMe.java
试图在这里一类与...隔开POJO有一个POJO扩展我的另一个类。
这是超越JAVA的能力吗?
package abc;
public class TestMe {
Foo f = new Foo();
Class c1 = f.getClass();
Bar b = new Bar();
Class c2 = b.getClass();
Class merged = c2.asSubclass(c1);
// Trying to call the Foo method
System.out.println(merged.getGreeting());
// Trying to call the Bar method
System.out.println(merged.getClaim());
}
此外,发生的是从所提供的POJO创建JSON模式。但POJO仅基于UPDATE记录方案。我正在寻找最佳方式让POJO为CREATE记录场景扩展另一个类,这就是为什么我要动态地让POJO在需要时扩展我的代码的原因。
- 需要生成POJO的用于UPDATE
- 需要验证自己的JSON JSON模式符合UPDATE
- POJO的要求,需要他们的JSON转换成的POJO的UPDATE
而且,
- 需要为CREATE生成POJO的json模式
- 需要核实他们的JSON符合POJO的要求制造
- 需要把他们的JSON转换成POJO的用于创建
使用杰克逊密新和ObjectMapper我能到我的代码中动态适用于类当创建模式时,我遇到的问题是当试图让POJO扩展Mixin不会解决问题的类时。
否(我必须键入至少13个字符,所以)... –
号使用接口或抽象类试过吗? –
@EngineerDollery我当然希望它是可能的,否则嘲笑框架将无法正常工作;-) –