Zabezpieczenie przed nullami w wywołaniu pętli

0

Cześć
Mam pytanko: w pętli for/for each odwołuje się do pod-obiektu, który może być nullem, w takim przypadku chce żeby wyświetlał pustkę. Wiem, że operator trójwartościowy jest dobry, ale można to zrobić że tak powiem "ładniej"?

Przykłąd o co mi kaman:

for (SimplyObject simply : simplyResults){
simplyResults.getObject2()!=null? simplyResults.getObject2.getName() : " ";
///itp.
}
0

Możesz np zrobić metode name w SimplyObject i ukryć w niej null checka. Mozesz też uzyc optionala z getOrElse (albo samo orElse, nie pamietam)

0

Wykorzystaj Optionale i możliwości strumieni.
Coś w stylu:

public class Simple {
  private String name;

  public Simple(String name) {
    this.name = name;
  }
  
  public String getName() {
    return name;
  }
}
import java.util.*;
class Main {
  public static void main(String[] args) {
    List<Optional<Simple>> list = new ArrayList<>();
    list.add(Optional.of(new Simple("One")));
    list.add(Optional.empty());
    list.add(Optional.of(new Simple("Three")));

    list.stream()
    .filter(Optional::isPresent)
    .map(Optional::get)
    .map(Simple::getName)
    .forEach(System.out::println);
  }
}

Pisane na kolanie na szybko jakby co ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1