作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
suggestBox.addKeyUpHandler( new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
String boxText = suggestBox.getText();
if (!boxText.equals("")) {
suggestPanel.add(checkBoxFactory(boxText, candidateNames));
suggestBox.setText("");
}
}
}
});
我一直无法理解为什么java强制我将ArrayList
(candiateNames
)声明为final。这是为什么?
最佳答案
它是一个内部类,传递到addKeyUpHandler
中——内部类外部引用的所有变量都需要声明为final才能在内部类中使用。这是因为本地类实例必须维护变量的单独副本,因为它可能比函数的生命周期更长;为了避免同一作用域内同名的两个可修改变量发生混淆,该变量被强制设为不可修改。
只需在调用使用内部类的方法之前执行 final {type} {new-varname} = {old-varname};
,然后使用 {new-varname}
里面。
关于Java Final——一个永恒的谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320762/
我一直在使用高精度时间在控制台中记录我的程序事件。但很快我就注意到程序有时会显示四舍五入到毫秒的时间,有时则不会!它完全偶尔发生,它是相同的代码,未重新编译,未在运行之间编辑: using Syste
首先:该代码被认为是纯粹的乐趣,请在生产中不要做任何类似的事情。在任何环境下编译并执行这段代码后,对于您,您的公司或您的驯鹿造成的任何伤害,我们概不负责。以下代码不安全,不可移植,并且非常危险。被警告
我正在投影图像,然后检查它: 高度是20px。这是正确的。 然后我检查包含 img 的 data-radium 元素,令我惊讶的是: 尽管没有内容,该元素的高度“增长”了两个像素。此外,data-ra
我是一名优秀的程序员,十分优秀!