【问题标题】:Why do we use KeyEvent.VK_? instead of simply using the character为什么我们使用 KeyEvent.VK_?而不是简单地使用字符
【发布时间】:2019-08-23 20:29:50
【问题描述】:

假设我们想为一个菜单项设置一个助记符,我们希望它是'c'。我注意到他们几乎在所有代码中都将其写为:

menuitem.setMnemonic(KeyEvent.VK_C);

我知道我们可以这样写:

menuitem.setMnemonic('c');

但是,第一个变体似乎更常见。这是为什么?为什么我们不只使用简单的字符而不是KeyEvent.VK_C 之类的东西?第一个代码比第二个代码有什么优势?

【问题讨论】:

    标签: java swing awt keyevent mnemonics


    【解决方案1】:

    在第二个例子中,字符'c'是一个“魔法”字符。它现在恰好是正确的值,但将来可能不是。如果它确实发生了变化,则必须有人去找到所有输入“c”的地方并修复它。如果使用常量表达式,就像在第一个示例中一样,只需要更改一个地方。

    您可能会想“但它当然不会改变,它永远只是 'c'”。肯定有一些时候常量可能是矫枉过正的。例如,如果魔法值只使用一次,或者是一个 100% 永远不会改变的值。但是考虑一下它是否会变成 'c\special-character' 之类的。使用常量代替魔术字符串或字符更安全,也是最佳实践。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 2016-11-08
      相关资源
      最近更新 更多