ダブルコロン(::)の使用形態は、主にあって、
クラス名::インスタンスメソッド
::オブジェクトのインスタンスメソッド
サンプルコードを以下に詳細に示します。
二重コロン(::)関数、矢印( - >)がまとめを以下に示します:
以下のような: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 }