如何使用Optional.map()

问题描述 投票:0回答:1

考虑以下接口:

public interface Vc{
}

public interface Vd< P extends Vc, C extends Vcc<{
...
}

public interface VcResult extends Vc{
}

存在一个返回Optional的方法

public Optional<Vc> getData()

这是我尝试改进代码的方法:

public VcResult mainMethod(){
  Optional<Vc> vc = getData();
  if(vc.isEmpty){
    return anotherMethod();  
  }
  return (VcResult)vc.get();
}

请建议转换这部分:

if(vc.isEmpty){
      return anotherMethod();  
   }
   return (VcResult)vc.get();

对此:

vc.map()..orElseGet(() -> anotherMethod());

上面语句中map的参数是什么。

java java-8
1个回答
0
投票

您可以使用

VcResult
的类对象来转换它:

public VcResult mainMethod(){
    return getData().map(VcResult.class::cast).orElseGet(this::anotherMethod);
}
© www.soinside.com 2019 - 2024. All rights reserved.