今天我遇到了一些我不明白的奇怪代碼。Java怪異算子() - >含義和字符串操作
什麼可以的意思是這樣() - > 例如
method(()-> System.out.println("Hello"));
另一個問題是,什麼是字符串的輸出:
[AB][CD]*EF+(X/Y)
當然有不的任何實例A,B等。但我有答案如
ABCDEFX, ACEFXX, ACEFXA,
我不記得他們
有人能幫助我嗎?
今天我遇到了一些我不明白的奇怪代碼。Java怪異算子() - >含義和字符串操作
什麼可以的意思是這樣() - > 例如
method(()-> System.out.println("Hello"));
另一個問題是,什麼是字符串的輸出:
[AB][CD]*EF+(X/Y)
當然有不的任何實例A,B等。但我有答案如
ABCDEFX, ACEFXX, ACEFXA,
我不記得他們
有人能幫助我嗎?
假設你有一個聲明一個方法的接口:
public static interface MyFunctionalInterface {
void m1();
}
而且你必須接收該類型的對象作爲參數的方法:
public void method(MyFunctionalInterface i) { ... }
可以實現該接口和立即使用匿名內部類如下:
method(new MyFunctionalInterface() {
public void m1() {
System.out.println("Hello");
}
});
在Java 8 y OU可以替換與lambda表達式如一個你表明:
method(() -> System.out.println("Hello"););
空參數表示m1()
方法,不帶參數。
假設你正在使用的功能接口有一個方法用一個參數(如果你的方法有形式method2(ActionListener s) { ... }
爲例),那麼你可以使用:
method2(e -> System.out.println("Hello"););
這將是一樣的這樣做:
method2(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Hello");
}
});
有大約在Java中8 This one Lambda表達式很多教程是一個很好的快速啓動。
很好的答案!這是我的預期!謝謝 ;) –
第一個是lambda(Java 8中的新增功能);至於第二個,它是某些類的'.toString()'方法的輸出字符串... – fge
這就是[lambda表達式]的語法(http://docs.oracle.com/javase/tutorial/ java/javaOO/lambdaexpressions.html) –
1.那麼,什麼意思是空的括號,2.有我現在補充質疑的答案。 –