java - "Relative"类属性引用

标签 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 receiveProperty = x.y。无论x是什么类型的对象,或者y是什么类型。

有没有办法在Java中做到这一点?

最佳答案

我认为您可以使用接受 SomeObjectClass 并返回 intToIntFunction

 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() 或任何返回 intSomeObjectClass 方法。

关于java - "Relative"类属性引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49435844/

相关文章:

java - Tomcat服务器中奇怪的间歇字符编码行为

java - 在 Android 4.4 Kitkat 中查找 SD 卡路径

python - 如何通过字符串尾随数字从列表中选择一个项目

python - 将多个返回值附加到 Python 中的不同列表

CSS 选择器选择具有此 id 和此类的元素

java - 如何按需停用jnativehook?

java - 如何转换 Telegram Api 核心日期 :int type into Java Date?

python - 如何定义一个函数以便可以在对象上调用它?

c++ - 游戏实体更新方法

具有私有(private)全局内核方法的 C++ 类