我正在尝试制作一个程序,这是我的问题:
我有接口(interface)“引擎”。
EngineFactory.createEngine(请求)
在工厂我有:
if(request instanceof TypeA){ return new TypeAAA(request);}
if(request instanceof TypeB){ return new TypeBBB(request);}
可悲的是,当我尝试这样做时,在构造函数中:
(TypeA) requestArg
它是说 - 未定义的构造函数。我可以在不明显转换 (TypeAAA)TypeA requestArg) 的情况下做到这一点吗?
最佳答案
我假设您想将其转换为 TypeA
而不是 TypeAAA
(如果它是 TypeA
的实例)?
无论如何,是的,即使您检查了它是否是之前的类的实例
,您仍然必须自己进行转换。在 Kotlin 中,编译器足够聪明,可以解决这个问题,但在 Java 中,您仍然需要进行转换。
关于java - 抽象类逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47267282/