假设我有一个包含很多字符串值的“Dog”类,并且我希望将所有这些值都放在一个列表中,是否有比单独添加每个值更好的方法?
例如采用这个虚拟类,请注意,如果重要的话,所有值都是字符串
public class Dog {
private String breed;
private String name;
private String origin;
[...] a lot more
getter and setter methods
}
<小时/>
Dog dog = new Dog([...] bla bla);
是否有比以下更好的方法将实例的所有这些值放入列表中:
public List<String> toList() {
List<String> list = new ArrayList<String>();
list.add(dog.getBreed);
list.add(dog.getName);
list.add(dog.getOrigin);
[...]
return list;
最佳答案
您可以使用反射。
Dog dog = new Dog("val1", "val2", "val3");
List<String> list = new ArrayList<>();
for(Field field: Dog.class.getDeclaredFields()) {
// since fields are private we need to first mark it accesible
field.setAccessible(true);
if( field.getType().equals(String.class)) {
list.add((String) field.get(dog));
}
}
关于java - 将对象实例的所有值添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58893903/