Java >> Java tutorial >  >> Tag >> boolean

Eksempel på Java BooleanSupplier

Denne side vil gå gennem 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 instansiere BooleanSupplier 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 instansiere BooleanSupplier 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 vi BooleanSupplier 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 

Reference

Java doc:BooleanSupplier
Java tag