ラムダ式、Javaのダブルコロン(::)の詳細な例

ダブルコロン(::)の使用形態は、主にあって、

クラス名::インスタンスメソッド

::オブジェクトのインスタンスメソッド

サンプルコードを以下に詳細に示します。

二重コロン(::)関数、矢印( - >)がまとめを以下に示します:

以下のような:HashMapの::()と同等の新しい - >新しいHashMapの()

1  パブリック クラスのテスト{
 2  
3。     // インスタンス・オブジェクトがインスタンスメソッドを参照する
4。      サプライヤーの<string> supplier1 = "小文字" ::のtoUpperCase;
 5。      サプライヤーの<string> supplier1_1 =() - > "小文字" .toUpperCase();
 6  
。7      / / (パラメータなし)コンストラクタクラス参照
。8      supplier2サプライヤー:: =文字列の<string> 新しい新規;
 9      サプライヤーの<string> supplier2_1 =() - > 新しい新しい文字列();
 10  
11の     // (パラメータで)クラス参照コンストラクタ
12      機能<文字列、文字列>はfunction1 :: =文字列の新しい新しい;
 13れます     機能<文字列、文字列> function1_1 =(文字列STR) - > 新しい新しい文字列(STR);
 14  
15      // クラスの参照インスタンスメソッドは、パラメータとして渡されたオブジェクトのインスタンス、パラメータ、同一のパラメータタイプ
16      機能<文字列、文字列> =機能2の文字列のtoUpperCase ::;
 17      機能<文字列、文字列> function2_1 =(文字列STR) - > str.toUpperCase();
 18れている 
。19      // 述語<T>特殊機能<Tとして理解される、ブール> 
20である 
21であります      人=人の新しい新しい人();
 22はある     // 静的なメソッド参照するものと
23ではありません      supplierBln = <ブール>サプライヤー人:: isTest;
 24      サプライヤー<ブール> supplierBln_1 =() - >Person.isTest();
 25  
26であり、     // インスタンス・オブジェクト・メソッド呼び出しインスタンス
27      サプライヤーの<string> supplierStr = ;人::のgetName
 28      サプライヤーの<string> supplierStr_1 =() - > person.getName();
 29  
30      // 引数なしコンストラクタ
31は      サプライヤの<person> = supplierPerson人:: 新しい新規;
 32      サプライヤーの<person> supplierPerson_1 =() - > 新しい新規人物();
 33は 
34である     // そこ引数コンストラクタ
35      biFunction <文字列、文字列、人> =人biFunction :: 新しい新しい;
 36     BiFunction <文字列、文字列、人> biFunction_1 =(名前、性別) - > 新しい人(名前、性別)。
37  
38      // 类名调用实例方法、入参为传入实例对象
39      機能<人、人> functionP = 人:: toOpposite。
40      機能<人、人> functionP_1 =人- > person.toOpposite();
41  
42      消費者<文字列>消費者= のSystem.out ::のprintln。
43      消費者の<string> consumer_1 =(文字列str) - > のSystem.out.println(STR);;
44  
45      公共 静的 ボイドメイン(文字列[]引数){
 46         リストの<string>リスト=は、Arrays.asList( "1"、 "2"、 "3" )。
47          ブール BL = list.stream()anyMatch( "1" ::等しいです)。
48          リスト<文字列>のretval = list.stream()(Collectors.toCollection(LinkedListの::集める。新しいの));
49  
50          一覧<人>人物=は、Arrays.asList(新しい人(10、 "ジャック"、 "M" ));
51          人の人= 新しい人(20、 "リリー"、 "F" )。
52          persons.stream()フィルタ(人:: isMale).filter(人物:: isUnder).collect(Collectors.toCollection(ArrayListを::。新しいです));
 

 

Personクラスのコードを次のように:

1つの パブリック クラス人{
 2      int型の年齢;
3      文字列の名前。
4      文字列性別;
5  
6      パブリック人(){
 7      }
 8  
9      公共人(文字列名){
 10          この .nameの= 名前。
11      }
 12  
13      公衆人(文字列名、文字列性別){
 14          この .nameの= 名前。
15          この .gender = ジェンダー。
16      }
 17  
18      公衆人物(int型の年齢、文字列名、文字列性別){
 19          この .age = 年齢。
20          この .nameの= 名前;
21          この .gender = ジェンダー。
22      }
 23  
24      公共の文字列のgetName(){
 25          リターン この.nameの。
26      }
 27  
28      公衆人toOpposite(){
 29          であれば(gender.charAt(0)== 'M' 30              性別= "F" 31          
32              性別= "M";
33          返す これを34      }
 35  
36      パブリック 静的 ブールisTest(){
 37          リターン 38      }
 39  
40      パブリック ブールisUnder(人の人){
 41          リターン person.age> この.age。
42      }
 43  
44      パブリック ブールisMale(){
 45          リターン gender.equals( "M" )。
46      }
 47 }

 

おすすめ

転載: www.cnblogs.com/blouson/p/Java_colon_operator.html