如果你将这些值以二进制数的形式呈现出来,你会发现它们从20到213形成了一个完整的位数组。 *_MASK值组成了较低的范围,而*_DOWN_MASK则组成了较高的范围。所有这些值都具有相同的建议,后者优于前者。 补充说明:@Boann评论说,“这说明它们是不同的。但它没有解释原因。” 我不愿意猜测,但我认为合理的推断是开发人员需要适应扩展修饰符,可以在这里讨论,同时保持向后兼容性。
getModifiers()
和getModifiersEx()
之间的区别是关键的,并且在@trashgod的链接评论中有很好的解释。(当前按下的所有修饰键与刚刚生成事件的改变有何不同。) - Joshua Goldberg