Pendekatan Pra-Java 8:
Pendekatan Java 8:
Kelebihan menggunakan Pilihan:
Kaedah berguna kelas Pilihan:
Elakkan melibatkan koleksi dalam Pilihan:
Pertimbangan prestasi:
Berhati-hati dengan kegunaan lain Pilihan:
Elakkan menggunakannya sebagai kunci atau nilai Peta atau dalam koleksi.
Elakkan menggunakannya sebagai medan contoh melainkan ia masuk akal, seperti dalam getter pilihan.
Contoh Kod
Contoh 1: Penggunaan asas Pilihan
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")); } }
Contoh 2: Menggunakan 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); } }
Contoh 3: Pilihan dengan jenis primitif
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"); } } }
Atas ialah kandungan terperinci Item Berhati-hati apabila memulangkan pilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!