Java 如何从2个不同的POJO传递变量?
我得到了2个POJO,它们被传递到一个HttpEntity并转换为json 在传递它们之前,我需要一个变量,该变量位于两个POJO中,由于API的需要,具有不同的名称,因此我无法更改它们 在POJO定义(如中所述)中,没有强制转换和OOP的最佳方式是什么 抽象pojoJava 如何从2个不同的POJO传递变量?,java,oop,abstract-class,pojo,Java,Oop,Abstract Class,Pojo,我得到了2个POJO,它们被传递到一个HttpEntity并转换为json 在传递它们之前,我需要一个变量,该变量位于两个POJO中,由于API的需要,具有不同的名称,因此我无法更改它们 在POJO定义(如中所述)中,没有强制转换和OOP的最佳方式是什么 抽象pojo public abstract class Pojo{ //some common variables //setter getters } 波乔内 public class PojoOne extends Pojo{ p
public abstract class Pojo{
//some common variables
//setter getters
}
波乔内
public class PojoOne extends Pojo{
private String id;
//setter getter for id
}
波佐托
public class PojoTwo extends Pojo{
private String identifier;
// setter getter for identifier
}
类
public class SomeOtherClass {
public void getIdForUse(Pojo pojo){
String s = pojo. // How should this be to have ability to get both id and identifier
}
}向公共超类添加公共方法:
public abstract class Pojo {
public abstract String getId();
// some common variables
// setter getters
}
public class PojoOne extends Pojo {
private String id;
@Override
public String getId() {
return id;
}
//setter for id
}
public class PojoTwo extends Pojo {
private String identifier;
// setter getter for identifier
@Override
public String getId() {
return identifier;
}
}
在抽象类
Pojo
中定义抽象方法getId()
并在两个子类中实现它。然后在SomeOtherClass
中从Pojo
调用getId()
。其缺点是,将来创建的每个子Pojo都必须重写getId(),即使它们没有id或标识符。是的,它是。您可以返回null
例如在这种情况下。@YavuzDoğan那么getIdForUse()不应该将Pojo作为参数,而是一个提供getId()方法的更具体的类或接口,因为它需要其参数具有ID。