Ansätze vor Java 8:
Der Java 8-Ansatz:
Vorteile der Verwendung von Optional:
Nützliche Methoden der Optional-Klasse:
Vermeiden Sie die Einbeziehung von Sammlungen in Optional:
Leistungsaspekte:
Seien Sie vorsichtig bei anderen Verwendungen von Optional:
Vermeiden Sie die Verwendung als Kartenschlüssel oder -werte oder in Sammlungen.
Vermeiden Sie die Verwendung als Instanzfelder, es sei denn, dies ist sinnvoll, z. B. in optionalen Gettern.
Codebeispiele
Beispiel 1: Grundlegende Verwendung von Optional
import java.util.Optional; public class ExemploOptional { public static Optional<String> encontrarNome(String[] nomes, String nomeBuscado) { for (String nome : nomes) { if (nome.equalsIgnoreCase(nomeBuscado)) { return Optional.of(nome); } } return Optional.empty(); // Retorna Optional vazio se não encontrar o nome } public static void main(String[] args) { String[] nomes = {"João", "Maria", "Ana"}; Optional<String> nomeEncontrado = encontrarNome(nomes, "Maria"); nomeEncontrado.ifPresent(nome -> System.out.println("Nome encontrado: " + nome)); System.out.println(nomeEncontrado.orElse("Nome não encontrado")); } }
Beispiel 2: Verwendung von orElseThrow
import java.util.Optional; public class ExemploOrElseThrow { public static Optional<Integer> buscarIdade(String nome) { if (nome.equals("João")) { return Optional.of(30); } return Optional.empty(); // Retorna Optional vazio se o nome não for "João" } public static void main(String[] args) { Optional<Integer> idade = buscarIdade("Maria"); // Lança uma exceção se o valor não estiver presente int valorIdade = idade.orElseThrow(() -> new IllegalArgumentException("Idade não encontrada!")); System.out.println("Idade: " + valorIdade); } }
Beispiel 3: Optional mit primitiven Typen
import java.util.OptionalInt; public class ExemploOptionalInt { public static OptionalInt buscarIdade(String nome) { if (nome.equals("João")) { return OptionalInt.of(30); } return OptionalInt.empty(); // Retorna OptionalInt vazio se o nome não for "João" } public static void main(String[] args) { OptionalInt idade = buscarIdade("João"); if (idade.isPresent()) { System.out.println("Idade encontrada: " + idade.getAsInt()); } else { System.out.println("Idade não encontrada"); } } }
Das obige ist der detaillierte Inhalt vonArtikel Seien Sie vorsichtig, wenn Sie Optionen zurücksenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!