Java 我能否以更优雅的方式对一个组件执行多个操作?
我注意到我的Android项目中生成的代码使用以下技术将多个操作应用到Snackbar:Java 我能否以更优雅的方式对一个组件执行多个操作?,java,Java,我注意到我的Android项目中生成的代码使用以下技术将多个操作应用到Snackbar: fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Send message", Snackbar.LENGTH_LONG)
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]));
我的解决方案是简单地执行以下操作:
for(int i = 0; i < 6; i++){
((JButton) toolBar.getComponent(i)).setText(null);
((JButton) toolBar.getComponent(i)).setIcon(new ImageIcon(iconPath[i]));
}
for(int i=0;i<6;i++){
((JButton)toolBar.getComponent(i)).setText(null);
((JButton)toolBar.getComponent(i)).setIcon(新图像图标(iconPath[i]);
}
我的问题是:我是否遗漏了一些东西,或者它是否只在Android项目中起作用?在这种情况下,为什么?这与Android无关。它是关于方法的返回类型的。在您的示例中,Snackbar使用的技术称为
因此,这是由实现您使用的类的其他人做出的设计决策。这不是语言功能或类似功能。好吧,因为我使用的是JButton类,所以我不能使用方法链接,必须依赖我上面发布的解决方案?简单明了:是的。:)
for(int i = 0; i < 6; i++){
((JButton) toolBar.getComponent(i)).setText(null);
((JButton) toolBar.getComponent(i)).setIcon(new ImageIcon(iconPath[i]));
}