Java 从不同的对象获取相同的字段
我想在Java中实现一个通用方法,该方法接收一个对象并获得相同的属性,而不管它是什么类型的对象 例如:我有两个对象,Java 从不同的对象获取相同的字段,java,generics,Java,Generics,我想在Java中实现一个通用方法,该方法接收一个对象并获得相同的属性,而不管它是什么类型的对象 例如:我有两个对象,car和house,并且知道这些对象具有属性id。 我能写一个这样的方法吗 public void method(Object x) { x.getId(); } 除非使用反射,否则无法执行此操作,反射非常容易发生异常 public void method(Object o) throws NoSuchFieldException, SecurityException {
car
和house
,并且知道这些对象具有属性id。
我能写一个这样的方法吗
public void method(Object x) {
x.getId();
}
除非使用反射,否则无法执行此操作,反射非常容易发生异常
public void method(Object o) throws NoSuchFieldException, SecurityException {
Field idField = o.getClass().getDeclaredField("id");
int id = idField.getInt(o);
}
但解决此类操作的常用方法是使用多态性或带有接口的泛型方法
public interface Identifiable {
public int getId();
}
public <T extends Identifiable> void method(T anIdentifiableObject) {
anIdentifiableObject.getId();
}
public void method(Identifiable anIdentifiableObject) {
anIdentifiableObject.getId();
}
可识别的公共接口{
public int getId();
}
公共无效方法(T anIdentifiableObject){
anIdentifiableObject.getId();
}
公共无效方法(可识别的可识别对象){
anIdentifiableObject.getId();
}
您可以通过接口或抽象类来实现这一点。您真的、真的、真的应该为此使用接口。