如何为String变量分配或设置Optional <String>值?

Per*_*rry 3 java java-8

我试图将Optional<String>一个方法返回的值设置为模型类的setter方法。

public class Person{

    private String address;

    public void setAddress(String Address){
        address = Address;
    }

    public String getAddress(){
        return address;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

Person person = new Person();    
Optional<String> addr = retrievePersonAddressById(5);
if (addr.isPresent()) {
    person.setAddress(addr.get());
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了

incompatible types: String cannot be converted to Optional<String>
Run Code Online (Sandbox Code Playgroud)

注意:

resolvePersonAddressById()的返回类型为Optional<string>

错误在线

person.setAddress(addr.get());
Run Code Online (Sandbox Code Playgroud)

我需要帮助

Jam*_*l H 5

如果此行发生错误:

Optional<String> addr = retrievePersonAddressById(5);
Run Code Online (Sandbox Code Playgroud)

更改为 Optional<String> addr = Optional.of(retrievePersonAddressById(5));

  • 然后写`if(true){`而不是`if(addr.isPresent()){`,是的! (6认同)