Java技巧:用匿名类来实现简化程序调试

中微8S6990实战:5分钟搞定GPIO配置与按键中断(附避坑指南) 本文以中微8S6990单片机为例,详细讲解了GPIO按键中断的快速配置方法与实战避坑指南。内容涵盖GPIO初始化、中断配置、软件消抖优化及低功耗唤醒等关键步骤,并提供了利用逻辑分析仪进行调试验证的有效方法,帮助开发者快速构建稳定可靠的嵌入式按键交互系统。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 在Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle)。但其实,它们对于debug也很有帮助。本文将介绍如何利用匿名类来简化你的debug。 我们该如何调试那些非自己源码的方法调用呢?比方说,对Jbutton.setEnable()的调用。Java提供的匿名类,可以很好的解决这个问题。 通常,当我们继承一个类时,我们可以通过提供新的方法来覆盖(override)该类中现有的方法: 英文代码public class MyButton extends JButton { public void setVisible( boolean visible ) { // Rolling our own visibility } } 在实例化(instantiate)MyButton类之后,任何对方法setVisible()的调用,都会调用上面代码中的setVisible()方法。可问题是,我们不想仅仅为了覆盖一个方法而继承整个类,尤其是所需的实例(instantiation)很有限的时候。匿名类使得我们能在实例化的同时覆盖方法。 如果我们只想在某个JButton对象中加入我们自己的可视逻辑,那么我们可以在申明这个button对象的同时重写这个方法: JButton myButton = new JButton() { public void setVisible( boolean visible ) { // Rolling our own visibility } }; 这段代码都做了什么?花括号({})中间的代码申明了setVisible()方法,并覆盖了JButton类中的那个,但这仅限于myButton对象。我们没有改变JButton类,也没有申明一个新类,我们仅给了一个特殊的JButton对象它自己的可视逻辑。 在面向对象术语中,myButton是一个从JButton类继承而来的无名,也就是匿名,类的对象。 这种创建匿名类并同时覆盖方法的技术用在什么时候?假设你在编写一段Swing程序,在你向一个GUI物件(element)中添加一个event listener(假设叫作ActionListener)之前,你已经编写了一段这种机制的代码。现在,我们假设我们有个庞大的类,里面有很多按钮,但是有一个按钮时隐时现。你想知道为什么会这样。利用上面的代码并在setVisible()方法上设置断点。然后,当你运行你的程序时,你设置的断点就会在恰当的地方暂停程序。检查栈轨迹(stack trace),我们会发现没有按所预期的那样来调用setVisible()方法的原因并修复这个它。 匿名类在debug类似这种源码不可得的类的时候很有用。即便在源码可得的情况下,在大量使用的方法(如setVisible)上设置断点,也是件很麻烦的事情,因为我们在每个实现了setVisible()方法的类的对象上都要转入断点。而匿名类可针对某个特定的对象进行“外科手术”式的debug
PX4 EKF2协方差矩阵‘负定’了怎么办?保姆级排查与数值稳定性修复指南 本文深入解析PX4 EKF2协方差矩阵出现‘负定’问题的原因,并提供全面的排查与修复方案。从理论分析到实践操作,详细介绍了数值稳定性危机的诊断工具、算法加固措施及工程实践中的防御性编程技巧,帮助飞控工程师有效解决滤波算法中的数值稳定性问题。 阅读详情

相关推荐

[原创]Linux 802.11n CSI tool安装教程(亲测可用)

Linux 802.11n CSI tool安装教程 前言 网上关于Intel5300 CSI tool的教程繁多,实际有效的可以说极少,各种疏漏错误。装的时候被坑无数次,终于调通。其实装这个工具并不太难,但是很多人把它弄得极其复杂,所以写这篇博客来帮助和我有一样困扰的人。我基本沿用的是官方文档旧版本的安装方案,针对其冗杂之处做了大量改进。 旧版安装教程: http://dhalperi....

u014645508的博客 4万+

关于匿名内部类debug(回调函数)

在进入到内部类函数的前一步,debug时,直接放行,即F8键,让系统自动进入内部类函数即可。

yunxuantu的博客 2565

SAP采购申请审批策略配置简介

SAP采购申请审批策略配置简介 1、CT04创建特征

我小时候很黑的博客 8090

测试匿名内部类

package oop; /** 测试匿名内部类 @author */ public class TestAnonymousInnerClass { public static void test01(AA a){ a.aa(); } public static void main(String[] args) { TestAnonymousInnerClass.test01(ne...

LY_yhq 352

JAVA多线程及匿名内部类

注意:单核处理器的计算机肯定是不能并行的处理多个任务的,只能是多个任务在单个CPU上并发运行。同理,线程也是一样的,从宏观角度上理解线程是并行运行的,但是从微观角度上分析却是串行运行的,即一个线程一个线程的去运行,当系统只有一个CPU时,线程会以某种顺序执行多个线程,我们把这种情况称之为线程调度。

weixin_44639056的博客 700

java 程序猿必备技能——Debug详解

java人必备技能之一——Debug。一篇博文带你快速入门!

CSDN / 稀土掘金/ B站 / GitHub: Cyan_RA9 8179

java中的匿名类方法覆盖_Java技巧:用匿名类实现简化程序调试

Java技巧:用匿名类实现简化程序调试Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle)。但其实,它们对于debug也很有帮助。本文将介绍如何利用匿名类简化你的debug。我们该如何调试那些非自己源码的方法调用呢?比方说,对Jbutton.setEnable()的调用Java提供的匿名类,可以很好的解决这个问题。通常,当我们继承一...

weixin_29553791的博客 379

java语言程序设计 笔记_Java语言程序设计笔记

本文主要向大家介绍了Java语言程序设计笔记,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。对象的自动清除·对象回收是由垃圾回收线程负责·System.gc()方法可以要求系统进行垃圾回收,仅仅是建议系统·java没有“析构方法”,但Object的finalize()有类似方法·系统在回收时会自动调用对象的finalize()方法protected void finaliz...

weixin_30982943的博客 421

java程序设计》第九周学习总结

内部类: 当不希望被别人使用时,可以在一个类中定义另一个类,成为内部类 包含内部类的类成为内部类的外嵌类 内部类和外嵌类的关系 1.外嵌类的成员变量在内部类中仍然有效,内部类的方法也可以调用外嵌类的方法 2.内部类类体不可以声明类变量和类方法,外嵌类类体可以用内部类声明对象作为外嵌类成员 3.内部类仅供外嵌类使用 4.外嵌类的成员变量在内部类中有效 注:内部类可以被修饰为stati...

banquet79的博客 179

2018-2019-2 《Java程序设计》第6周学习总结

20175319 2018-2019-2 《Java程序设计》第6周学习总结 教材学习内容总结 本周学习《Java程序设计》第七章和第十章: 内部类: 1.内部类可以使用外嵌类的成员变量和方法。 2.类体中不可以声明类变量和类方法。 3.内部类仅供外嵌类使用。 4.类声明可以使用static修饰,static内部类不能操作外嵌类中的实例成员变量。 注:非内部类不可以是static类。 匿名类: ...

weixin_30493401的博客 218

20165318 2017-2018-2 《Java程序设计》第五周学习总结

20165318 2017-2018-2 《Java程序设计》第五周学习总结 学习总结 在使用IDEA时,由于我之前编写的代码都是使用GBK编码,使用IDEA打开时,由于IDEA默认为UTF-8,代码会出现中文乱码,这时候可以使用如下方法,将IDEA的编码改成GBK 教材内容总结: 第七章 内部类与异常类 一、 内部类与匿名类 内部类: 1.内部类可以使用外嵌类的成员变量和方法。 2.类...

weixin_34184561的博客 139

20165312 2017-2018-2 《JAVA程序设计》第5周学习总结

20165312 2017-2018-2 《JAVA程序设计》第5周学习总结 一、本周学习内容总结 总的来说,本周学习较吃力,在理解第十章的代码时速度较慢。 内部类 内部类是定义在一个类中的另外一个类; 内部类的外嵌类的成员变量在内部类中仍有效,内部类的方法可以调用外部类中的方法。内部类的类体中不可以声明类变量和类方法。 内部类可以被修饰为static内部类 匿名类 和子类有关的匿名类 new...

weixin_30588827的博客 159

Java中的类和对象【三】

http://blog.csdn.net/silentbalanceyh/article/details/4495385 本文目录:【蓝色部分为本章的目录】 1.基本概念 2.Java变量相关 1)Java变量分类 2)Java中变量的初始化 3)Java变量修饰符和访问域 4)Java类修饰符[不包含内部类] 3.Java涉及OO的关键知识点【主体】 1)继承的

tony的专栏 1807

Java_匿名对象

这是一个小的知识点,单独放在一个博客里面,共供以后复习和扩展 什么是匿名对象? 所谓匿名对象,顾名思义,就是没有名字的对象.,匿名对象是对对象简化形式。 Car c = new Car(); //有名字的对象 new Car(); //没有名字的对象 再举个例子 Car c = new Car(); c.num = 5; //以上代码可以简写成以下形式 ......

su_nmer的博客 237

java匿名类简化调试

Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle)。但其实,它们对于debug也很有帮助。本文将介绍如何利用匿名类简化你的debug。       我们该如何调试那些非自己源码的方法调用呢?比方说,对Jbutton.setEnable()的调用Java提供的匿名类,可以很好的解决这个问题。 ...

上善若水 269

Java中的匿名内部类及其使用技巧

前言在介绍匿名内部类之前,首先我们应该先来了解一下内部类及局部内部类: 内部类 内部类(inner class)是定义在另一个类中的类,内部类中的方法可以访问创建该内部类的类(我们称其为外围类 outer class)的域中所有数据(包括私有/private数据)。并且,内部类可以对同一个包中的其他类隐藏起来。 但是由于内部类是一种编译器现象,在虚拟机中只存在常规类文件,所以在编译过程中

tick_tock97的博客 2万+

Java面向对象匿名对象的应用

什么是匿名对象匿名对象对象简化形式举例如下:

悟道子HD 252

java-匿名对象(菜鸟教程)

匿名对象: 一次性 匿名对象对象的一种简化形式 使用情况 1. 当对象方法只需要调用一次的时候 2. 匿名对象调用属性没有意义 3. 匿名对象可以作为实参进行方法传递 一. this关键字 this是一个引用, 自动存在每一个方法中, 指向自己 "我" this表示当前对象的引用(谁正在调用包含this关键字的方法, 谁就是当前对象) 1. 区分成员变量和局部变量 this.成员变量 任何属性或方法都必须通过引用访问 如果...

m0_49151953的博客 462

(207页PPT)工业大数据采集处理与应用.pptx

(207页PPT)工业大数据采集处理与应用.pptx

基于stm32f103的tsl2561光强传感器程序

程序下载即用,如遇光照强度过高可自行在模块外表添加菲涅尔透镜,可降低直射光照的影响。

上一篇: 为Java新手入门准备的最基础的学习资料
下一篇: 用EditPlus配置Java编译环境
java169
博客等级 码龄18年 27粉丝 2568原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值