java - 抽象类逻辑问题

标签 java

我正在尝试制作一个程序,这是我的问题:

我有接口(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/

相关文章:

Java:分割分号分隔的字符串但忽略引号中的转义+分号

java - 用replaceAll替换字符串中的空格在JAVA中不起作用

java - DockLayoutPanel 无法正常工作

java - Spring jms - 重命名 DLQ

java - 使用 compose() 而不是 lambda 表达式的原因是什么?

java - 循环遍历tiles,只有get才能获取第一个tile的索引

java - 按时间和猜测次数对高分进行排序

java - Maven:如何从命令行更改目标目录的路径?

java - Checkstyle报告生成图表报告

java - Android 2.1 :Caused by: java. lang.ClassNotFoundException: fragment