"相对"类属性引用

时间:2018-03-22 18:19:08

标签: java list class parameters

我想通过一个"亲戚"类属性的引用作为参数。

首先,我不知道"相对参考"实际上它是这个的正确名称,但我想到的是这些方面的东西:

public ArrayList<Integer> getAllPropertyValues(someObjectClass.someInteger) { //someObjectClass.someInteger being the "relative reference"
    ArrayList<Integer> temp = new ArrayList<>();
    for (someObject x : someObjectList) {
        temp.add(x.someInteger);
    }
}

我们的想法是将引用传递给(例如)Human.Age,并且该方法会将每个x.Age添加到列表中。

换句话说,如果我通过属性x,则给定一个对象y我可以调用someDataType recievedProperty = x.y。对象的归属是x或者y是什么类型。

有没有办法在Java中执行此操作?

1 个答案:

答案 0 :(得分:3)

我认为您可以使用接受SomeObjectClass的ToIntFunction并返回int

 public ArrayList<Integer> getAllPropertyValues(ToIntFunction<SomeObjectClass> function) { 
    ArrayList<Integer> temp = new ArrayList<>();
    for (someObject x : someObjectList) {
        temp.add(function.apply(x));
    }
 }

你可以调用它:

ArrayList<Integer> results = getAllPropertyValues(SomeObjectClass::getAge);

您可以传递getAge()或任何返回SomeObjectClass的{​​{1}}方法。