java - java - 如何获取作为通用参数传递给Java函数的实体的字段?
问题描述
我有一个接收任何实体类的通用方法。我所有的实体都有一个 LocalDate 类型的 createDate 字段。我想访问并获取通用方法中的字段。该方法将是这样的
public static < T > List<Resource> printArray( List<T> entity) {
for( T e : entity ) {
LocalDate d = e.getCreateDate(); //Wrong
}
我不想检查泛型参数的实例并对其进行类型转换,因为有很多实体,我希望代码尽可能少(因此是泛型函数)。我怎样才能做到这一点?
解决方案
您可以使用抽象方法创建接口getCreateDate()
interface IDate {
LocalDate getCreateDate();
}
并假设您的所有实体都实现了此接口,您的方法将如下所示:
public static <T extends IDate> List<Resource> printArray(List<T> entity) {
for(T e : entity ) {
LocalDate d = e.getCreateDate();
}
}
否则你不能保证你传入这个方法的实体有方法getCreateDate()
@VHS建议有反射解决方案
推荐阅读
- python - 我想在引号之间找到单词并更改位置
- python - 从 main/daily.py 导入 utils/config.py
- java - 从父文件夹运行 gradle build
- sql - 如何使用多个主键通过 string_split 连接表?
- npm - (yarn link) 如何获取yarn link的link-folder-path?
- apache-spark - Apache Spark UDF:访问冰山
- kubernetes - 如何在主节点上实际安排 Pod
- angular - Angular Ionic后退按钮仅在我在其上滑动指针后才起作用
- python - Pandas:比较两个布尔系列,如果两者都为真,则输出第三个系列
- javascript - Angular - 具有三元运算符响应的三元运算符