java - 如何使用返回类引用的方法创建匿名类
问题描述
我想使用返回类实例的方法创建一个匿名类
class FirstClass {
public FirstClass() {
System.out.println("First class created");
}
}
class SecondClass {
public SecondClass() {
System.out.println("Second class created");
}
public FirstClass getFirstClass() {
return new FirstClass();
}
}
public class Ex1 {
public FirstClass getFirstClass() {
return new FirstClass();
}
public static void main(String[] args) {
//here is the problem
Object obj = new SecondClass().getFirstClass() {
{
System.out.println("Anonymous class created");
}
};
}
}
我希望程序通过创建匿名类来工作,但它给了我一个语法错误。接受任何解决方案或变通方法。谢谢
解决方案
您不能根据方法的返回值创建匿名类。匿名类只能在创建对象时创建,也就是说,它只能使用构造函数创建。
您最好的选择是FirstClass
直接创建并覆盖初始化程序,如下所示:
new FirstClass() {
{
System.out.println("This is from inside anon!");
}
};
推荐阅读
- javascript - 在 JavaScript 中是否有一种简单的方法来获取 url 指向的字符串?
- mysql - 如何根据mysql中的两列连接表?
- php - phpmailer电子邮件发送不起作用
- ssrs-2008 - 将时间转换为 ssrs 中的两倍
- python - 从 Python 数据框中提取值
- vue.js - 为什么 getter 和 mutation 接受 state 而 action 接受 context 作为 VUEX 的第一个参数?
- c# - Http获取请求页面大小限制
- apache-spark - Spark Launcher 连接时间
- python - Jupyter Notebook 显示错误
- delphi - 帕斯卡,如何将整数标记为货币价值