我這樣做:Lambda只能與功能界面一起使用嗎?
public class LambdaConflict
{
public static void main(String args[]){
//*
System.out.println(LambdaConflict.get(
(str) -> "Hello World!! By ME?"
));
/*/
System.out.println(LambdaConflict.get(new Intf<String>(){
@Override public String get1(String str){
return "Hello World!! By get1 " + str;
}
}));
/*****/
}
public static String get(Intf<String> i, boolean b){
return i.get1("from 1");
}
}
interface Intf<T>
{
public T get1(T arg1);
public T get2(T arg1);
}
,並得到此異常:
不兼容的類型:INTF不是一個功能界面在界面中發現INTF 注 多個非壓倒一切的抽象方法:有些郵件被簡化了;與-Xdiags重新編譯:冗長獲得 全輸出 1錯誤
是否有我不能使用lambda來代替匿名類的情況?
_overcome_ it是什麼意思?你明白錯誤嗎? –
1)功能接口只能有1個方法。 2)他們必須註釋@FunctionalInterface –
功能接口也被稱爲SAM類型(單一抽象方法類型)。所以,你的功能界面只能有一個抽象方法。 –