2016-09-12 61 views
-3

这是我的第一个方法lambda表达式,功能参数或在一般功能的编程...Java的传递函数为参数

如何我可以叫B功能在这个代码?我需要在(1)中编写我的函数,或者我可以编写另一个函数,并在(1)内部调用它吗?

+0

你想要做什么? – SOFe

+3

如果这是您的第一个方法,我建议您首先浏览Oracle Java教程https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html。他们会教你如何使用lambda表达式。你将能够以这种方式更有效地学习。 – Tunaki

+0

我想在我的ArrayList的每个元素上调用一个函数。这个函数以T元素作为输入并返回一个T元素@PeMapModder –

回答

1

首先,您应该实例化Fp_example<String>,因为您将ArrayList<String>传递给b_function

现在,取决于您希望如何转换输入String s,由您决定将哪个函数传递给方法。任何采用String参数并返回String的lambda表达式都可以。

例如,可以传递反转输入String个lambda表达式:

new Fp_example<String>().b_function(names, s -> new StringBuilder(s).reverse().toString()); 

Function<String,String> a_function = s -> new StringBuilder(s).reverse().toString(); 
new Fp_example<String>().b_function(names, a_function); 

你可能想显示将所述函数的输入元件的输出,但是:

+0

好的感谢男人和如果我想传递一个尚未定义的函数?例如 我有a_function和b_function,我想打电话给b_function这样的: b_function(姓名,a_function) –

+0

@MarcoCastano如果'a_function'是'功能',你可以通过它来'b_function'。 – Eran

+0

你能举一个例子吗?..请@Eran –