Esempi con gli Optional
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
package org.gym.fp.moderjava;
|
||||||
|
|
||||||
|
import org.gym.fp.moderjava.optional.Car;
|
||||||
|
import org.gym.fp.moderjava.optional.Insurance;
|
||||||
|
import org.gym.fp.moderjava.optional.Person;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static java.lang.System.out;
|
||||||
|
|
||||||
|
public class OptionalTest {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Insurance myInsurance1 = new Insurance("Allianz");
|
||||||
|
Car myCar1 = new Car(Optional.of(myInsurance1));
|
||||||
|
Person person1 = new Person(Optional.of(myCar1));
|
||||||
|
out.println("My insurance's name is " + getCarInsuranceName(Optional.ofNullable(person1)));
|
||||||
|
out.println("----------------------------------------");
|
||||||
|
Car myCar2 = new Car(Optional.ofNullable(null));
|
||||||
|
Person person2 = new Person(Optional.ofNullable(myCar2));
|
||||||
|
out.println("My insurance's name is " + getCarInsuranceName(Optional.ofNullable(person2)));
|
||||||
|
out.println("----------------------------------------");
|
||||||
|
}
|
||||||
|
|
||||||
|
static String getCarInsuranceName(Optional<Person> maybePerson) {
|
||||||
|
return maybePerson
|
||||||
|
.flatMap(Person::getCar)
|
||||||
|
.flatMap(Car::getInsurance)
|
||||||
|
.map(Insurance::getName)
|
||||||
|
.orElse("Unknown");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package org.gym.fp.moderjava.optional;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ToString
|
||||||
|
public class Car {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private Optional<Insurance> insurance;
|
||||||
|
|
||||||
|
public Car(Optional<Insurance> insurance) {
|
||||||
|
this.insurance = insurance;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package org.gym.fp.moderjava.optional;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
@ToString
|
||||||
|
public class Insurance {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public Insurance(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package org.gym.fp.moderjava.optional;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ToString
|
||||||
|
public class Person {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private Optional<Car> car;
|
||||||
|
|
||||||
|
public Person(Optional<Car> car) {
|
||||||
|
this.car = car;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user