所有的函式式介面都可以簡化程式設計模型,都可以用lamdba表示式,都只有乙個實現方法。
功能性函式介面(function)
有輸入有輸出
@functionalinte***ce
public
inte***ce
function
};// 用lamdba表示式
function
function =
(s)-
>
;// 測試**
string teststring =
"this is test text"
; system.out.
println
(function.
(teststring));
system.out.
println
("***************==");
system.out.
println
(function2.
(teststring));
}
消費者函式式介面(consumer)
無輸入有輸出
原始碼:
@functionalinte***ce
public
inte***ce
consumer
}; consumer
consumer1 =
(s)-
>
;// 測試**
consumer.
accept
("第乙個");
consumer1.
accept
("第二個");
}
生產者函式式介面(supplier)
沒有輸入有輸出
原始碼:
@functionalinte***ce
public
inte***ce
supplier
};// 用lamdba
supplier
supplier1 =()
->
;// 測試**
object o = supplier.
get();
system.out.
println
(o);
system.out.
println
("***************=");
// 注意lamdba表示式前面加了泛型 所以返回的是泛型型別
string s = supplier1.
get();
system.out.
println
(s);
}
斷定型函式式介面(predicate)
輸入乙個值返回乙個布林
@functionalinte***ce
public
inte***ce
predicate
if the input argument matches the predicate,
* otherwise
*/boolean
test
(t t)
;
輸入乙個t判斷t,返回乙個布林值
例子:
public
static
void
main
(string[
] args)};
predicate
predicate1 =
(integer)
->
;// 測試**
int t =6;
int f =5;
system.out.
println
(predicate.
test
(t))
; system.out.
println
(predicate.
test
(f))
; system.out.
println
("***************=");
system.out.
println
(predicate1.
test
(t))
; system.out.
println
(predicate1.
test
(f))
;}
前提是函式式介面,像是資料庫的操作。
旨在於用資料庫存資料,用流計算進行計算資料
用下面的例子表示 編譯過程中會看到很多之前提到的4種函式是介面
public
static
void
main
(string[
] args)
)//id 為偶數
.filter
((user)
->
)// 使用者名稱大寫 返回物件
.map
(user -
>
)//年齡降序排序
.sorted
((o1,o2)
->
)//列印
.foreach
(system.out:
:println)
;}
Juc入門之Callable介面
furure介面實現執行緒直接資料的互動 runnable介面不可以,因為runnable介面的run方法返回值是void callable實現的未來任務 1 未來任務的get 方法會阻塞主線程的執行 主線程需要得到未來任務的返回值 2 乙個任務不能被反覆執行,如果想反覆執行,必須重新設定新任務 比...
常用函式式介面之Predicate
public class predicatedemo01 判斷給定的字串是否滿足要求 private static boolean checkstring string s,predicatepre public class predicatedemo02 同乙個字串給出兩個不同的判斷條件,最後把這...
函式式介面之function包下的介面
函式式介面提供的介面其實只是常用的一些介面,並沒有什麼特別的地方,可能只是覺得很多人會使用才新增進去的,方便程式設計師,不用自己建造,或許也可能是為了建個規範吧。public static void main string args public static intftext int a,func...