我注意到我的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项目中有效,在这种情况下,为什么?
答案 0 :(得分:0)
这与Android无关。这是关于方法的返回类型。您的示例中Snackbar使用的技术称为Method Chaining。
因此,这是由实施您正在使用的类的其他人做出的设计决策。这不是语言特征或类似的东西。