我想搜索类中的哪个字段,给定一个 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/