匿名内部类的对象写在main方法外的成员位置怎么运行?我是新建了一个方法result来接收但也不能在main方法里直接创建对象来实现。
Java匿名内部类写在main方法外怎么运行?
匿名内部类的对象写在main方法外的成员位置怎么运行?我是新建了一个方法result来接收但也不能在main方法里直接创建对象来实现。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 【以下回答由 GPT 生成】
在Java中,匿名内部类对象通常定义在方法内部,但如果你希望将匿名内部类对象定义在类的成员位置(main方法外),有以下两种方式来实现:
- 通过新建一个方法来接收匿名内部类对象:
- 首先,在类的成员位置定义一个接口或抽象类:
java interface MyInterface { void doSomething(); }
- 然后,在main方法外定义一个方法,该方法接收MyInterface对象,并在其中实现匿名内部类:
java static void myMethod(MyInterface obj) { // 执行匿名内部类的方法 obj.doSomething(); }
-
最后,在main方法中调用myMethod方法,并传入匿名内部类对象:
java public static void main(String[] args) { myMethod(new MyInterface() { @Override public void doSomething() { System.out.println("执行匿名内部类的方法"); } }); }
-
使用Lambda表达式(Java 8及以上版本):
-
在Java 8及以上版本,可以使用Lambda表达式来创建匿名内部类对象,可以更简洁地实现: ```java public class Main { interface MyInterface { void doSomething(); }
public static void main(String[] args) { MyInterface obj = () -> System.out.println("执行Lambda表达式的方法"); obj.doSomething(); } } ``` 注意:Lambda表达式适用于只有一个抽象方法的接口或抽象类。
如果以上两种方式都无法满足你的需求,可能就需要考虑其他更复杂的设计方式。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 欧拉系统opt目录空间使用100%
- ¥15 ul做导航栏格式不对怎么改?
- ¥20 用户端如何上传图片到服务器和数据库里
- ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
- ¥30 vivado封装时总是显示缺少一个dcp文件
- ¥100 pxe uefi启动 tinycore
- ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
- ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
- ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
- ¥15 疾病的获得与年龄是否有关