Как получить объект с помощью дополнительного интерфейса?

Я пытаюсь получить объект из класса Person (класс уже создан), но я хочу получить его с помощью интерфейса Optional, поскольку объект может находиться или не входить в набор людей. Метод будет выглядеть следующим образом:

public Optional<Persona> getPersona(Persona pe) 
{
    Optional<Persona> user = Optional.ofNullable(null);

    Predicate<Persona> ver = umano -> 
    {       
        boolean b = false;
        for(Persona i: personas) // personas es el Set de personas ya creado
        {
            if(i.equals(pe)) 
            b = true;
        }
        return b;
    };
    user.filter(ver);
    if(user.isPresent())
        user.get();
    return user;
}
0
задан 23.04.2019, 22:22
1 ответ

Я думаю, что ты запутался немного, довожу до сведения тебе несколько вещей:

  • Optional не интерфейс.... являются одной pseudo-mГіnada

Всегда ты можешь использовать Strem API, который уже берется за то, чтобы возвращать тебе опциональную стоимость.

Предполагая, что ты инициализировал твой список людей, и что ты знал, в который ты будешь искать

List<Persona> personas = Arrays.asList(new Persona("Kevin",22),new Persona("Ruslan",33),new Persona("Kevin",45));

, можешь определять ты mГ©todo одной lГ-nea buscarPersona как:

public Optional<Persona> buscarPersona(String personaABuscar,List<Persona> personas) {
  Objects.requireNotNull(personas, "agrega una lista de personas para buscar en ella");
  Objects.requireNonNull(personaABuscar,"especifica un nombre para buscarlo");
  return personas.stream().filter(persona->personaABuscar.equalsIgnorecase(persona.getNombre())).findFirst();
}

и использовать результат следующего способа:

String personaABuscar = "Kevin";
Optional<Persona> hallado = buscarPersona(personaABuscar,personas);
System.out.println("Se encontró a "+hallado.get().orElse("nadie :'v"));
if(hallado.isPresent()){
  Persona elKevin = hallado.get();
  System.out.println("hola soy " + elKevin.getNombre() + " y tengo " + elKevin.getEdad() + "años");
}
  • Замечает: я сделал все памятью, но конечно ты sevirГЎ guГ - в как использовать Optional, чтобы получать стоимость в целесообразность.
0
ответ дан 24.11.2019, 09:21

Теги

Похожие вопросы