Java 1.8.0_151 kullanıyorum ve derleme değil bazı kod var ve ben anlamıyorum: o result1
üzerinde çalışıyor ancak result3
üzerinde derleme hatası veriyor nedenJava8 jenerik bulmaca
Optional optional = Optional.of("dummy");
Optional<Boolean> result1 = optional.map(obj -> true); // works fine
boolean result2 = result1.orElse(false); // works fine
boolean result3 = optional.map(obj -> true).orElse(false); // compilation error: Incompatible types: required boolean, found object
Object result4 = optional.map(obj -> true).orElse(false); // works fine
?
Ek bilgi: result1
ve result2
gibi result3
derlemek yapabiliyor: İlk satırda
- , ben
Optional
Optional<String>
değiştirmek, result3 da ben 2 hat içineresult3
kestiğinizde - derlemek yapabiliyor
Olası kopyası [Ham tür nedir ve neden kullanmamalıyız?] (Https://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt -we-use-it) – Andrew
@AndrewTobilko OP olabilir * bu amaçla * – Eugene