Eksempel på Java BooleanSupplier
Denne side vil gå gennem
Her vil vi angive ved hjælp af
BooleanSupplierWithLE.java
BooleanSupplierWithMR.java
WithMethodParameter.java
BooleanSupplier
eksempel. BooleanSupplier
er den funktionelle grænseflade introduceret i Java 8 under java.util.function
pakke. BooleanSupplier
er den boolske-producerende primitive specialisering af Supplier
funktionel grænseflade. Den funktionelle metode for BooleanSupplier
er getAsBoolean()
som returnerer boolesk resultat. Find BooleanSupplier
struktur fra Java doc.@FunctionalInterface public interface BooleanSupplier { boolean getAsBoolean(); }
BooleanSupplier
kan instansieres ved hjælp af lambda-udtryk og metodereference.Her vil vi angive ved hjælp af
BooleanSupplier
i vores applikationer i detaljer.Brug af Lambda-udtryk
Find koden for at instansiereBooleanSupplier
ved hjælp af lambda-udtryk.BooleanSupplierWithLE.java
package com.concretepage; import java.time.LocalDate; import java.util.function.BooleanSupplier; public class BooleanSupplierWithLE { public static void main(String[] args) { BooleanSupplier dt = () -> LocalDate.now().isLeapYear(); System.out.println(dt.getAsBoolean()); BooleanSupplier bs = () -> "my_username".length() > 5; System.out.println(bs.getAsBoolean()); BooleanSupplier evenBs = () -> { int num = 16; if (num % 2 == 0) { return true; } return false; }; System.out.println(evenBs.getAsBoolean()); } }Output
true true true
Brug af metodereference
Find koden for at instansiereBooleanSupplier
ved hjælp af metodereference.BooleanSupplierWithMR.java
package com.concretepage; import java.util.function.BooleanSupplier; public class BooleanSupplierWithMR { public static void main(String[] args) { BooleanSupplier bs1 = AppUtil::isDataBaseUp; System.out.println(bs1.getAsBoolean()); BooleanSupplier bs2 = AppUtil::isInternetUp; System.out.println(bs2.getAsBoolean()); } } class AppUtil { public static boolean isDataBaseUp() { return true; } public static boolean isInternetUp() { return false; } }Output
true false
Bestå som metodeparameter
Her sender viBooleanSupplier
som metodeparameter.WithMethodParameter.java
package com.concretepage; import java.util.Random; import java.util.function.BooleanSupplier; import java.util.stream.Stream; public class WithMethodParameter { public static void main(String[] args) { int num = 11; String msg = getMsg(() -> num % 2 == 1); System.out.println(msg); System.out.println("--- With Stream.generate() ---"); Stream<Boolean> stream = Stream.generate(() -> new Random().nextBoolean()).limit(5); stream.forEach(b -> System.out.println(b)); } static String getMsg(BooleanSupplier oddBs) { if (oddBs.getAsBoolean()) { return "Odd number"; } return "Even number"; } }Output
Odd number --- With Stream.generate() --- true false true false true