java - 如何高效地从类中找到具有特定引用值的字段?

标签 java

我想搜索类中的哪个字段,给定一个 bean 实例和一个值引用,保存该值引用。更具体地说,说:

public class Address { }

public class Person {
    public Address address1;
    public Address address2;
    public Address address3;
}

Address a1 = new Address();
Address a2 = new Address();
Address a3 = new Address();

Person person = new Person();
person.address1 = a1;
person.address2 = a2;
person.address3 = a3;

java.lang.reflect.Field field = SearchFieldByValue(person, a2); // Here, must return field Person#address2

我想使用比迭代所有字段并检查值更具性能的方法来执行此操作。

最佳答案

没有比使用反射更高效的方法来做到这一点。

执行此操作的高效方法是让您希望可搜索的每个类(Java Bean 或其他类)实现自定义搜索 API。

或者更进一步,为可搜索字段创建索引;即实现一个基本的内存数据库。 (为此,填充索引的成本必须小于重复搜索的成本。)

关于java - 如何高效地从类中找到具有特定引用值的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57183012/

相关文章:

java - STS + Spring Data JPA + Hibernate 存储库 XML 配置问题

java - 无法找到Sonarqube各个版本之间的差异

java - Elasticsearch 不处理 liquibase 加载的数据

java - 在进行 TDD 时我应该如何创建类

java - 如何管理使用多个微服务并在开发(而非测试)环境中模拟它们?

java - Spring-Boot 1.4.0 使用随机端口示例

java - 计算网络的连接数

java - Swing 中的平滑动画

java - 如何使开关工作?

java - 为什么 IntelliJ Idea 不自动完成 Jersey 资源 @Consumes 或 @Produces 注释内的 MediaType 枚举?