The dubultā kola (::) operators , zināms arī kā metodes atsauces operators Java izmanto, lai izsauktu metodi, tieši atsaucoties uz to ar savas klases palīdzību. Tie darbojas tieši tāpat kā lambda izteiksmes. Vienīgā atšķirība no lambda izteiksmēm ir tāda, ka tā izmanto tiešu atsauci uz metodi pēc nosaukuma, nevis nodrošina metodes delegātu.
Sintakse:
::>
Piemērs: Lai izdrukātu visus straumes elementus:
- Izmantojot Lambda izteiksmi:
stream.forEach( s->System.out.println(s));>
Programma:
kinoaktrise Kajal
// Java code to print the elements of Stream>// without using double colon operator>>import>java.util.stream.*;>>class>GFG {>>public>static>void>main(String[] args)>>{>>>// Get the stream>>Stream stream>>= Stream.of(>'Geeks'>,>'For'>,>>'Geeks'>,>'A'>,>>'Computer'>,>>'Portal'>);>>>// Print the stream>>stream.forEach(s ->System.out.println(s));>>}> }>>
>
Izvade:Geeks For Geeks A Computer Portal>
- Izmantojot dubultās kolas operatoru:
stream.forEach( System.out::println);>
Programma: Demonstrēt dubultās resnās zarnas operatora lietošanu
// Java code to print the elements of Stream>// using double colon operator>>import>java.util.stream.*;>>class>GFG {>>public>static>void>main(String[] args)>>{>>>// Get the stream>>Stream stream>>= Stream.of(>'Geeks'>,>'For'>,>>'Geeks'>,>'A'>,>>'Computer'>,>>'Portal'>);>>>// Print the stream>>// using double colon operator>>stream.forEach(System.out::println);>>}>}>>
>
Izvade:Geeks For Geeks A Computer Portal>
Kad un kā lietot dubultās resnās zarnas operatoru?
Metodes atsauci vai dubultās kolas operatoru var izmantot, lai atsauktos:
- statiska metode,
- gadījuma metode vai
- konstruktors.
Kā Java izmantot metodes atsauci:
- Statiskā metode
Sintakse:
(ClassName::methodName)>
Piemērs:
SomeClass::someStaticMethod>
Programma:
struktūras, izmantojot masīvus c
// Java code to show use of double colon operator>// for static methods>>import>java.util.*;>>class>GFG {>>>// static function to be called>>static>void>someFunction(String s)>>{>>System.out.println(s);>>}>>>public>static>void>main(String[] args)>>{>>>List list =>new>ArrayList();>>list.add(>'Geeks'>);>>list.add(>'For'>);>>list.add(>'GEEKS'>);>>>// call the static method>>// using double colon operator>>list.forEach(GFG::someFunction);>>}>}>>
>
Izvade:Geeks For GEEKS>
- Instanču metode
Sintakse:
(objectOfClass::methodName)>
Piemērs:
System.out::println>
Programma:
// Java code to show use of double colon operator>// for instance methods>>import>java.util.*;>>class>GFG {>>>// instance function to be called>>void>someFunction(String s)>>{>>System.out.println(s);>>}>>>public>static>void>main(String[] args)>>{>>>List list =>new>ArrayList();>>list.add(>'Geeks'>);>>list.add(>'For'>);>>list.add(>'GEEKS'>);>>>// call the instance method>>// using double colon operator>>list.forEach((>new>GFG())::someFunction);>>}>}>>
>
Izvade:Geeks For GEEKS>
- Super metode
Sintakse:
(super::methodName)>
Piemērs:
super::someSuperClassMethod>
Programma:
// Java code to show use of double colon operator>// for super methods>>import>java.util.*;>import>java.util.function.*;>>class>Test {>>>// super function to be called>>String print(String str)>>{>>return>(>'Hello '>+ str +>' '>);>>}>}>>class>GFG>extends>Test {>>>// instance method to override super method>>@Override>>String print(String s)>>{>>>// call the super method>>// using double colon operator>>Function>>func =>super>::print;>>>String newValue = func.apply(s);>>newValue +=>'Bye '>+ s +>' '>;>>System.out.println(newValue);>>>return>newValue;>>}>>>// Driver code>>public>static>void>main(String[] args)>>{>>>List list =>new>ArrayList();>>list.add(>'Geeks'>);>>list.add(>'For'>);>>list.add(>'GEEKS'>);>>>// call the instance method>>// using double colon operator>>list.forEach(>new>GFG()::print);>>}>}>>
>
pievienot virkni java
Izvade:Hello Geeks Bye Geeks Hello For Bye For Hello GEEKS Bye GEEKS>
- Konkrēta tipa patvaļīga objekta gadījuma metode
Sintakse:
(ClassName::methodName)>
Piemērs:
SomeClass::someInstanceMethod>
Programma:
// Java code to show use of double colon operator>// for instance method of arbitrary type>>import>java.util.*;>>class>Test {>>String str=>null>;>>Test(String s)>>{>>this>.str=s;>>}>>// instance function to be called>>void>someFunction()>>{>>System.out.println(>this>.str);>>}>}>>class>GFG {>>>public>static>void>main(String[] args)>>{>>>List list =>new>ArrayList();>>list.add(>new>Test(>'Geeks'>));>>list.add(>new>Test(>'For'>));>>list.add(>new>Test(>'GEEKS'>));>>>// call the instance method>>// using double colon operator>>list.forEach(Test::someFunction);>>}>}>>
>
Izvade:Geeks For GEEKS>
- Klases konstruktors
Sintakse:
(ClassName::new)>
Piemērs:
ArrayList::new>
Programma:
kruskal algoritms
// Java code to show use of double colon operator>// for class constructor>>import>java.util.*;>>class>GFG {>>>// Class constructor>>public>GFG(String s)>>{>>System.out.println(>'Hello '>+ s);>>}>>>// Driver code>>public>static>void>main(String[] args)>>{>>>List list =>new>ArrayList();>>list.add(>'Geeks'>);>>list.add(>'For'>);>>list.add(>'GEEKS'>);>>>// call the class constructor>>// using double colon operator>>list.forEach(GFG::>new>);>>}>}>>
>
Izvade:Hello Geeks Hello For Hello GEEKS>