Questions tagged «anonymous-class»

15
为什么在匿名类中只能访问最终变量?
a在这里只能是最终的。为什么?如何a在onClick()不保留为私有成员的情况下重新分配方法? private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; } }); } 5 * a单击该如何返回?我的意思是, private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; return b; // …


11
如何将参数传递给匿名类?
是否可以传递参数或将外部参数访问到匿名类?例如: int myVariable = 1; myButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // How would one access myVariable here? } }); 侦听器有什么方法可以访问myVariable或被传递myVariable而不将侦听器创建为实际的命名类?

2
从Java匿名类访问“ this”
给出以下代码: public interface Selectable { public void select(); } public class Container implements Selectable { public void select() { ... } public void createAnonymousClass() { Selectable s = new Selectable() { public void select() { //see comment below. } }; } } 我想Container.select()从我的匿名类select()方法中访问。但是,this.select()将再次调用匿名类的select()方法。 我的建议是: 将字段引入到Container中,例如 private Container self = this; …

7
Java8 Lambdas与匿名类
自从Java8最近发布以来,它的全新lambda表达式看起来真的很酷,我想知道这是否意味着我们曾经习惯的Anonymous类的消亡。 我对此进行了一些研究,发现了一些很酷的示例,这些示例说明Lambda表达式将如何系统地替换这些类,例如Collection的sort方法,该方法用于获取Comparator的Anonymous实例来执行排序: Collections.sort(personList, new Comparator<Person>(){ public int compare(Person p1, Person p2){ return p1.firstName.compareTo(p2.firstName); } }); 现在可以使用Lambdas完成: Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName)); 而且看起来简明扼要。所以我的问题是,是否有任何理由继续在Java8中使用这些类而不是Lambda? 编辑 同样的问题,但方向相反,使用Lambdas代替Anonymous类有什么好处,因为Lambdas只能与单个方法接口一起使用,此新功能仅是仅在少数情况下使用的快捷方式,还是真的有用吗?


6
Java 8 Lambda表达式-嵌套类中的多个方法呢?
我在以下位置阅读有关新功能的信息:http : //www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html 我看到了下面的示例: 使用匿名类: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Action Detected"); } }); 使用Lambda: button.addActionListener(e -> { System.out.println("Action Detected"); }); 如果某人MouseListener想要在匿名类中实现多个方法,该怎么办,例如: public void mousePressed(MouseEvent e) { saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e); } public void mouseReleased(MouseEvent e) { saySomething("Mouse released; # of clicks: …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.