在使用Optional对象时是否有一种有效的方法来执行向上转换.这是一个示例代码:
class A{}
class B extends A{}
B func(){
//do something
return new B();
}
Optional<B> func2(){
//do something
return Optional.of(new B());
}
main() {
A a = func(); // Upcasting works fine
B b = func(); // Upcasting works fine
Optional<B> b = func2(); // 1. Works fine
Optional<A> a = func2(); // 2. How to make this work ?
}
Run Code Online (Sandbox Code Playgroud)
(2.)给出错误.我可以通过创建另一个函数来解决它.
但是有一种有效的方法,所以func2()可以用于(1.)和(2.)?