当前位置: 首页 > 面试题库 >

是否可以在switch语句中使用instanceof运算符?

高英彦
2023-03-14
问题内容

我对instanceof对象使用开关盒有疑问:

例如:我的问题可以用Java复制:

if(this instanceof A)
    doA();
else if(this instanceof B)
    doB();
else if(this instanceof C)
    doC():

如何使用实施switch...case


问题答案:

这是子类型多态性有帮助的典型方案。请执行下列操作

interface I {
  void do();
}

class A implements I { void do() { doA() } ... }
class B implements I { void do() { doB() } ... }
class C implements I { void do() { doC() } ... }

然后,你可以简单的调用do()this

如果你不能随意更改ABC,则可以应用访问者模式来实现相同目的。



 类似资料:
  • 在java中是否可以将if语句转换为switch语句?

  • 问题内容: 可以从python中的单行方法返回 寻找这样的东西 尝试过,并且语法无效 我可以轻松做到: 但只是好奇我是否可以将上述if语句合并为一行 问题答案: 可以在一行上编写标准的“ if”语句: 但是pep 8样式指南建议不要这样做: 通常不建议使用复合语句(同一行上有多个语句)

  • 问题内容: 我知道在每种情况下/ 语句都会自动中断。我想知道以下代码: 是否声明退出循环或只是块? 问题答案: Break语句,《 Go编程语言规范》。 “ break”语句终止最里面的“ for”,“ switch”或“ select”语句的执行。 如果有标签,则必须是封闭的“ for”,“ switch”或“ select”语句的标签,并且该标签的执行终止(§For语句,§Switch语句,§

  • 问题内容: 基本上,我有一个react组件,其功能主体如下:(这是我的理想组件,这意味着它当前不起作用) 问题答案: 不完全一样,但是有解决方法。在React的文档中有一节关于条件渲染,您应该看一下。这是使用内联if-else可以做什么的示例。 您也可以在render函数中处理它,但是要在返回jsx之前。 还值得一提的是ZekeDroid在评论中提到的内容。如果您只是检查条件而又不想呈现不符合要求

  • 是否可以在 SQL SERVER 中的事务中使用 SELECT 语句锁定行?我想锁定该行,以便外部的其他事务无法访问该行。 提交或回滚事务后,应释放该行。这就是我的意思。。。 有人有建议吗?我应该执行 UPDATE 语句来锁定该行吗? 请不要将此问题标记为重复问题。因为,我不是在问UPDATE语句,而是在问SELECT 编辑:我试图“设置事务隔离级别串行化”,但这锁定了太多东西。我的SP很大,它有