/* * Olio-ohjelmoinnin perusteet I. * * Testaa järjetystä testaavaa operaattoria. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 17.2.2020. * */ import java.util.Objects; public class KiinnostavaTesti { public static void main(String[] args) { // Toteutetaan rajapinta lambdana, joka katsoo luvun 42 kiinnostaksi. Kiinnostava luvunArvioija = luku -> luku.equals(42); System.out.println(luvunArvioija.kiinnostaa(42)); // true System.out.println(luvunArvioija.kiinnostaa(10)); // false // Toteutetaan rajapinta lambdana, jonka on kiinnostunut arvosanoista 4 ja 5. Kiinnostava arvosananArvioija = arvosana -> arvosana.compareTo(4) >= 0; System.out.println(arvosananArvioija.kiinnostaa(1)); // false System.out.println(arvosananArvioija.kiinnostaa(5)); // true // Toteutetaan rajapinta lambdana, joka on kiinnostunut sanoista, jotka // alkavat ja loppuvat samaan kirjaimeen. Lambdalle on määritelty lohko, // koska toteutus koostuu kahdesta lauseesta. Ensimmäinen lause heittää // tarvittaessa sanoitetun NullPointerException-poikkeuksen. Kiinnostava sananArvioija = sana -> { Objects.requireNonNull(sana, "Sana ei saa olla null!"); return sana.charAt(0) == sana.charAt(sana.length() - 1); }; System.out.println(sananArvioija.kiinnostaa("onni")); // false System.out.println(sananArvioija.kiinnostaa("enne")); // true // java.lang.NullPointerException: Sana ei saa olla null! System.out.println(sananArvioija.kiinnostaa(null)); } }