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

Java中的切换案例的替代方法

欧阳成弘
2023-03-14
问题内容

除了看起来不太好以外,是否有其他替代方法可以在Java中实现切换案例。根据选择必须执行的方法,一组值会组合在一起。


问题答案:

想必您正在努力满足案件不变的要求。通常,这是代码气味,但是您可以做一些事情。您可能想提出并链接到另一个详细说明您为何尝试切换的问题。

Map<String,Object> map = new HasMap<String,Object>();
// ... insert stuff into map
// eg: map.add("something", new MyObject());

String key = "something";
if (map.contains(key)) {
    Object o = map.get(key);
}

在上面的示例中,您可能想要映射到“处理程序”,例如

interface Handler {
    public void doSomething();
}

然后,这一切都变成了查找。

if (map.contains(key)) { map.get(key).doSomething(); }

同样,这有点气味,因此请发布一个说明原因的问题。



 类似资料:
  • 问题内容: 我过去曾使用ServiceWrapper几次,但是,对于商业产品,双重许可有些复杂(通常需要付费)。是否存在具有类似功能的完全FOSS替代产品? 问题答案: 尽管我尚未完成评估,但YAJSW似乎是最好的选择。

  • Apache Camel(在JavaDSL)中是否有类似于Java开关盒的构造? 例如: 可以翻译成更类似于switch的东西吗?我的意思是,我不想使用简单的谓词,只使用body元素类型的值。还是我的方法完全错了?(这可能是合理的)

  • 我正在开发一个有ContentManager类的应用程序。该类从包中迁移文件,并在首次打开应用程序时执行其他检查。接下来,在一个相当长的ViewController链末端的view controller中使用它。据我所知,有两种实现方法: > 在第一个ViewController中实例化类,并将其通过segue传递到最终的ViewController。 在第一个ViewController中创建一

  • 这可以用来强制假设所收集的元素是不同的 但是,在我看来,java doc已经过时了。不能用了。问题是JDK是否为java开发人员提供了对类似功能的访问(类似的方法、常量等),还是应该由开发人员自己编写?

  • 在这里学习我在Raku(neéPerl 6)的方法,非常好。但是我非常想念这个神奇的

  • 我需要在控制台上打印大量的数据(大约100兆)。在IntelliJ上使用println是很失败的。有没有像console.log这样的替代方案,可以处理和显示这些数据而不会出现滞后和减慢? 提前道谢!