我有时会看到这样的代码:

new myJFrame().setVisible(true);


我不完全知道它是如何工作的,但是它实际上创建了一个myJFrame并将其设置为可见,以替代在其构造函数上将其设置为可见的方法。

我想知道的是,是否有办法在JMenuItem或JButton上执行此操作,以自动为它分配一个ActionListener,而不必先明确声明它,如:

myJMenu.add(new JMenuItem("Item").addActionListener(myActionListener));


据我所试,这是行不通的。

我并不需要工作,我想知道是否有可能,因为这可以节省一些时间。

提前致谢。

最佳答案

它称为method chaining,简单地说,一个类是否支持它,取决于它的编写方式。

完成的方法很简单:

public class Bar {

   private Set<Foo> foos;

   public Bar addFoo( Foo foo ) {
     this.foos.add( foo );
     return this;
   }
}


从中您还可以看到为什么无法链接不是以这种方式编写的方法。

10-07 16:16
查看更多