我想通过一个"亲戚"类属性的引用作为参数。
首先,我不知道"相对参考"实际上它是这个的正确名称,但我想到的是这些方面的东西:
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中执行此操作?
答案 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}}方法。