首页 > 解决方案 > 如何在另一个类的方法中使用一个类的字段名称,这样如果名称更改会出现编译器问题

问题描述

我想将一个 java 类中的字段名引用到另一个类,这样当有人更改基类中的字段名时,我至少会得到编译器错误。

前任:

@Entity
class Employee {

    public String userId;
    public String timestampCreate;

}

class EmployeeReport {

    public Page<Employee> getEmployees() {

        return page = employeeJpaRepository.findAll(pageNumber, pageSize,
                Sort.by(Sort.Direction.DESC, "timestampCreate"));

    }

}

timestampCreate是 Employee 类的字段名称。

我不想硬编码列名;因为这是不好的做法,并且希望它能够成为未来的证明,以防字段名称发生变化。例如,如果有人将列名“timestampCreate”更改为“timestamp”,那么至少我希望在 EmployeeReport 类中看到一些编译器错误。

请提出一个想法。谢谢!

注意:我打开这个类似于上一个,因为它被错误地关闭说重复,而如果你能看到标记的答案无处回答我的问题!

标签: javaspringjpaspring-data-jpaspring-data

解决方案


您不能开箱即用,但可以使用注释或反射。IMO 这些对于这种用例来说是丑陋的解决方案,有关更多详细信息,请参阅以下答案。 Java 中的等价名称


推荐阅读