
Nowy operator ::
W Javie 8 obok operatora -> wprowadzono operator ::
        pozwalający na skrótowe odnoszenie się do metod i konstruktorów. Operator oddziela
        nazwę klasy albo obiektu od nazwy metody.
Referencje do metod
Referencje do metod instancji
Używamy konstrukcji obiekt::metoda.
Referencje do metod klasy
Używamy konstrukcji Klasa::metoda.
Referencje do metod statycznych
Używamy konstrukcji Klasa::metoda.
Referencje do metod nadklasy przy przeciążeniu metod
Używamy konstrukcji super::metoda.
Referencje do konstruktorów
Referencje do konstruktora zwykłego
Używamy konstrukcji Klasa::new.
Referencje do konstruktora z typem ogólnym
Używamy konstrukcji Klasa<Typ>::new.
Referencje do konstruktora tablicy
Używamy konstrukcji Klasa[]::new.
Przykład
Załóżmy, że chcemy przekszałcić strumień stringów, tak aby elementy były zapisane wielkimi literami. Dla każdego elementu musimy zastosować metodę klasy String toUpperCase(). Funkcję mapującą możemy zapisać w następujący sposób:
        map((String s) -> {return s.toUpperCase();})
albo krócej
        map(s -> s.toUpperCase())
albo używając referencji do metody, która jest skrótowym zapisaniem wyrażenia lambda:
        map(String::toUpperCase)
gdzie znak :: oznacza referencję do metody.
Referencja do metody pozwala również na użycie metod statycznych.
String[] values = {"Halina", "Bogusław", "Maria", "Piotr",
"Anatol", "Jacek", "Alfred", "Elżbieta", "Antoni", "Bartłomiej",
"Dominika", "Łucja", "Cyryl", "Metody", "Prokop", "Mikołaj",
"Amelia", "Filip", "Olga"};
//stara metoda
for(int i = 0; i <values.length; i++){
   values[i] = values[i].toUpperCase();
   System.out.print(values[i] + " ");
}
System.out.println();
//nowa metoda
//1
Arrays.stream(values).map((String s) -> {
	return s.toUpperCase();
}).forEach(value -> System.out.print(value + " "));
        System.out.println();
//2
Arrays.stream(values).map(s -> s.toUpperCase())
.forEach(value -> System.out.print(value + " "));
System.out.println();
//3
Arrays.stream(values).map(String::toUpperCase)
.forEach(value -> System.out.print(value + " "));
Po uruchomieniu klasy na konsoli zobaczymy w każdym przypadku:
HALINA BOGUSŁAW MARIA PIOTR ANATOL JACEK ALFRED ELŻBIETA ANTONI BARTŁOMIEJ DOMINIKA ŁUCJA CYRYL METODY PROKOP MIKOŁAJ AMELIA FILIP OLGA
