我注意到我的Android项目中生成的代码使用以下技术将多个操作应用于Snackbar:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Send message", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
这似乎不适用于常规的java-swing项目:
for(int i = 0; i < 6; i++)
((JButton) toolBar.getComponent(i)).setText(null)
.setIcon(new ImageIcon(iconPath[i]));
生成以下编译错误:
error: void cannot be dereferenced
.setIcon(new ImageIcon(iconPath[i]));}
^
我的解决方案是简单地执行以下操作:
for(int i = 0; i < 6; i++){
((JButton) toolBar.getComponent(i)).setText(null);
((JButton) toolBar.getComponent(i)).setIcon(new ImageIcon(iconPath[i]));
}
我的问题是:我遗漏了某些东西还是仅在Android项目中起作用?在这种情况下,为什么?
这与Android无关。关于方法的返回类型。Snackbar在您的示例中使用的技术称为“方法链接”。
因此,这是其他实现您正在使用的类的设计决策。这不是语言功能或类似功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句