如何通过方法引用访问对象内部的方法

时间:2018-08-23 11:38:20

标签: java java-8 java-stream

A和B有两个类。例如,如下所示:

class A{
    B b;
    B getB(){ return b; }
}

class B{
    String x = "Test";
    String getX(){
       return x;
    }
}

我在.map(method_refrence_here_for_getX)中有A对象,并且我想调用getX,所以有什么办法吗?

尽管我可以做到以下几点:

.map(A::getB)
.map(B::getX)

or

.map( a -> a.getB().getX())

但是我想做类似.map(A::B::getX)的事情,我知道这是绝对错误的,但是我想要这样的事情,以便任何人都可以提供帮助?

1 个答案:

答案 0 :(得分:1)

不能。该没有语法,称为 method reference method ),您可能会显示一个字段引用,该引用不受支持,看起来从IMO开始很奇怪。

两者(map(A::getB).map(B::getX)map(a -> a.getB().getX())之间的区别在于,您将在内部保存其他方法,但这只是一个微小的优化,您应该真正研究一下在其中更易读的内容。你的意见。