我写了下面的代码片段,以便在所有Child
类中生成更好的可重用代码。
基础实体:
public class BaseEntity{
Integer id;
//setter getters etc
}
字符串
子实体:
public class MyChild extends BaseEntity{
String name;
//setter getters etc
}
型
我有许多扩展BaseEntity的子类,想写一个方法来删除boilerplate
代码。
工具类:
public class Util{
public String getName(BaseEntity base){
return base != null ? base.getChild().getName() : "";
}
}
型
问题是**base.getChild.name()**当child不是composition
形式时,如何做类似的事情?我阅读过关于Java反射的文章,但不知道如何在这种情况下以优化的方式来做。还有比反思更好的选择吗?
2条答案
按热度按时间ldioqlga1#
如果你想使用Java Reflaction API,那么你可以用这样的方式调用“getName”方法:
字符串
4ngedf3f2#
如果子实体遵循相同的命名约定,则在BaseEntity中定义默认方法并实现接口可以处理这种情况
字符串