This question already has answers here: Closed 8 years ago.

2020年7月29日 0条评论 24点热度 阅读全文

我最近发现,当我们编译包含内部类的Java文件时,会为每个类生成单独的文件。 但是在Gradle构建中,仅生成一个.class文件。 gradle在哪里存储所有内部类? 解决方案如下: Gradle将编译委托(delegate)给Java编译器,因此将根据语言的规范生成类文件。 因此内部类将出现在单独的类文件中。

2020年1月13日 0条评论 24点热度 阅读全文

Java中匿名类的用途是什么?我们可以说使用匿名类是Java的优点之一吗? 解决方案如下: 对于“匿名类”,我认为您的意思是anonymous inner class。 当使用某些“额外”(例如,覆盖方法)创建对象的实例时,匿名内部类会变得很有用,而不必实际继承一个类。 我倾向于将它用作附加事件侦听器的快捷方式: button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) {…

2019年12月23日 0条评论 45点热度 阅读全文

如何从匿名类的方法内部访问instance variables? class Tester extends JFrame { private JButton button; private JLabel label; //..some more public Tester() { function(); // CALL FUNCTION } public void function() { Runnable r = new Runnable() { @Override public void run() { // …

2019年8月16日 0条评论 31点热度 阅读全文

因此,我刚刚在网上找到了此代码示例,而我将再次讨论它,但感到很困惑。 通过查看,我收集到的(可能是错误的)是它传递给NumberPrinter类中的Printer对象的print方法。但是,该接口(interface)也称为Printer,所以我们不实例化Printer接口(interface)的匿名类,定义方法然后传递它吗? 我的基本问题是,我最初的假设正确吗?如果是这样,我认为您无法实例化接口(interface)? public class NumberPrinter { public interface P…

2019年7月28日 0条评论 22点热度 阅读全文

我正在编写C#Wicket实现,以加深对C#和Wicket的理解。我们遇到的问题之一是Wicket大量使用匿名内部类,而C#没有匿名内部类。 因此,例如,在Wicket中,您可以这样定义一个链接: Link link = new Link("id") { @Override void onClick() { setResponsePage(...); } }; 由于Link是一个抽象类,因此它强制实现者实现onClick方法。 但是,在C#中,由于没有匿名内部类,因此无法执行此操作。另外,您可以使用如下事件: va…

2019年7月25日 0条评论 37点热度 阅读全文

每当我尝试从外部类调用属于匿名类的方法时,都会收到编译器错误。例: public class Test { public static void main(String[] args) { Test testObj = new Test(){ public void doStuff(){ System.out.println("Test"); } }; testObj.doStuff(); } } 编译器提供的错误只是“找不到符号-doStuff()”。我必须忽略某些东西...任何想法? 提前致谢。 解决方案如下:…

2019年5月2日 0条评论 28点热度 阅读全文

在《 OCP学习指南》一书中,有一个关于比较器的示例,可以通过两种方式对其进行初始化。首先是通过这样的匿名类: Comparator<Duck> byWeight = new Comparator<Duck>(){ public int compare(Duck d1, Duck d2){ return d1.getWeight() - d2.getWeight(); } }; 这我能理解。根据这本书,可以将其替换为以下lambda表达式: Comparator<Duck> by…

2019年4月17日 0条评论 30点热度 阅读全文

This question already has answers here: Getting hold of the outer class object from the inner class object (8个答案) 3年前关闭。 在以下代码段中: public class a { public void otherMethod(){} public void doStuff(String str, InnerClass b){} public void method(a){ doStuff("asd",…

2019年4月4日 0条评论 37点热度 阅读全文