09 | 怎么用好Java注解?
该思维导图由 AI 生成,仅供参考
什么是 Java 注解
- 深入了解
- 翻译
- 解释
- 总结
Java注解是Java 1.5引入的重要工具,类似于为代码贴上标签,能够为代码添加标签信息,提高代码的可读性和可维护性。本文主要讨论了在声明继承关系中,Java注解的合理使用,具体涉及了Override、Deprecated、SuppressWarnings这三个注解的使用。其中,Override注解可以帮助识别子类的重写方法,清晰标明方法是重写的,同时在父类方法更改时能及时通知子类。另外,文章还提到了重写方法可能不遵守父类方法规范的问题,强调了重写方法应该遵守父类定义的规范,如果需要改变规范,应明确标明并注明潜在的后果。此外,文章还探讨了废弃接口的问题,强调了废弃的接口不应该继续使用,并介绍了使用Deprecated注解和SuppressWarnings注解的情况。总的来说,本文通过讨论Java注解的合理使用和废弃接口的处理,为读者提供了在面向对象编程中提高代码质量和管理继承关系的实用建议。
《代码精进之路》,新⼈⾸单¥59
全部留言(23)
- 最新
- 精选
- hua168老师,问3个很重要的题外问题: 1. 大专学历,想直接自学考本科或研究生,自考学历中大型公司承认的吗? 2. 大公司对年龄有限制的吗? 3. 30多岁,运维(编程自学java一年,没项目经验),只有小公司工作经验,技术一般,发展方向是什么?很多IT公司好像都不要年龄大点的~~人生80,那不是40岁就没得工作了?
作者回复: 人生三十,学历的分量应该比重不大了。国内的部分大公司,年龄是个考量的因素,但是也就是众多因素中的一个因素。如果把劳动力看成一个理性的市场,重要的是我们有什么可以拿来交换的。 我有一个朋友,认识他的人都特别佩服,他曾经兼顾过一段时间的非常枯燥无聊、看起来也没什么技术含量的工作。 过了几年,当他把工作转交给下一个人时,他已经把这项工作做的像一个艺术了。他做了大量的自动化,看起来非常枯燥无聊的事情,被他搞的很有趣,自动化后,根本就占用不了他多长时间。 软件是一个复杂的系统,需要各种各样的人才,有能研发的,有能测试的,有能运维的,有能运营的。每种都需要不同的技能。再厉害的研发也不一定做得了测试,也不一定做得了运维。 把你手头的工作做出花来,这就是我们值钱的地方。 怎么才能做出花来呢? 这个你的领导不知道,你的公司可能也不知道,所以大概率没有人能够教你怎么做。你得自己去从工作中发现现实的问题,找到具体的解决办法。多看看新的技术,想一想能不能用到你的工作环境中去。 你可能看到100个技术,只有一个能用。 一个能用,这就行了。你要是不看100个,可能没有办法找到这一个。 运维就是一个涉及到很多复杂知识的岗位,它的复杂度一点都不必软件开发简单。 但是,的确也有的运维就是看几台机器。但是,既然是你做运维,你可以自己定义运维该怎么做最好。 不管时哪一个岗位,如果做到一定程度,年龄从来都不是真正的问题。很多岗位,年龄都是优势,而不是问题,因为没有积年累月的积累,我们成不了一个领域最专业的人。成为问题的,是我们40岁了,水平还停留在20到30岁的阶段。 Stay Hungry, Stay Foolish!
2019-01-23252 - 大白给小白讲故事lombok插件的很多实用的注解 @Data 使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。 @NonNull 该注解使用在属性上,该注解用于属的非空检查,当放在setter方法的字段上,将生成一个空检查,如果为空,则抛出NullPointerException。 @AllArgsConstructor 该注解使用在类上,该注解提供一个全参数的构造方法,默认不提供无参构造。 @NoArgsConstructor 该注解使用在类上,该注解提供一个无参构造。 等等
作者回复: 学习了,我还不知道这个插件。注解真的非常强大!
2019-01-2416 - 卞雪达哈哈哈,最常用的注解,现在都成Spring的@Autowired啦,还有Spring的各种注解,给我的感觉,Spring使用多了,都是注解编程啦,我参数检验都用注解完成。我也会写自己的注解,我刚刚还完成了一个@Excel,我这是个Web的项目,有的接口产生的数据,可能会被导出成Excel,我捣鼓了几波,终于弄了一个注解,放在controller层的方法上,让那种简单的回List的接口,可以直接导出成Excel(配合下http参数),我遇到比较大的麻烦,是我之前设计了一个@Page的注解,注在Service层方法上,帮助开启数据库分页(也要配合http参数,且是一个方法查一次数据的那种),而@Excel跟它有个比较大的冲突:@Page是要分页,@Excel是不要分页。用户肯定是查询的时候看到分页接口,导出的时候拿到全部结果,我得想办法通知一下@Page,我最开始尝试给@Page里面的default方法弄个参数,然后改这个值,后来发现这个值竟然不是每个线程独有的,而是唯一的,也就是改了大家全都改,后来想了想,大概是因为注解本质上是个接口或类似接口?最终选择了ThreadLocal来通知@Page,我已经使用了很多ThreadLoacal了,我之前用它不是很多,现在有些上瘾,又隐隐担心别有坑,比如我知道有个不remove可能有内存溢出的坑。回到注解的话题,注解编程我觉得挺帅的,@Override我也爱加,能给方法加多少注解我就加多少,感觉是一种加持,哈哈哈,不过创造、使用注解就像是创造、使用规则,得对这个规则熟悉,好多注解编译器也不能判断你是不是符合了规则,用的时候还是有些学习成本。
作者回复: 👍 很多Java的特性,被大家用的出神入化,甚至远远超出了设计者的构想!这真的很帅啊!
2019-05-153 - 王智阿里巴巴的扫描插件或许会有帮助的,在使用idea的过程中,安装了Alibaba Java Coding Guidelines之后,代码的规范等等插件就会检测出来报红,虽然可以运行,但是对于有强迫症和代码洁癖的人来说就很难受. 包括了if不写括号,继承的方法没有使用@Override注解. 对于刚刚工作的我,java中的注解用的最多的就是@Override了. 废弃方法在idea中会有横线作为标记,有这种标记的方法一律不使用. 继续加油去了.
作者回复: 加油!
2019-01-233 - 小成C++11引入了override关键字,对应Java的override. C++14引入了deprecated关键字,对应Java的deprecated.
作者回复: 谢谢分享,这个留言对使用C++的有帮助!
2019-01-302 - web题目有点大, 以为是讲怎么写注解; 内容有点水, 半个版面怎么写override
作者回复: 😄和规范有关的注解。
2019-01-282 - 苦行僧现在基本上是用静态代码检查工具扫描业务代码,jdk中的废弃方法基本替换掉
作者回复: 赞,这是一个好习惯!
2019-01-232 - 程龙老师 我想问下,接口和实现类,注解应该写在接口 上面还是实现类?
作者回复: 要区分一下。 一般的,我们说接口是公开的interface或者class。接口的规范(注释的一种形式)要写在接口里,这样自动生成的文档,便于查阅。一般的实现类,是在内部包或者代码里。实现类的注释,是帮助理解实现类的,要贴着代码写。
2019-04-101 - 醉侠老师,想知道文章里String的构造函数为什么被移除,是因为字符编码的问题吗?
作者回复: 是字符编码的问题,这个构造函数(String(byte[] ascii, int hibyte))没有充分的信息可以把字节(byte)转换成合适的字符(character)。
2019-02-131 - BeingOverride对应C++就是virtual了,经常用,以前还真不太清楚为什么重写的方法要加,就觉得好区别,就保留这个习惯了,今天才意识到要避免父类删除继承方法后,能快速通过编译器定位问题。 貌似C++没有JAVA的Depraceted和SuppressWarnings类似的,我再查查确认下,Deprecated的用处挺大的,及时止损呀
作者回复: 谢谢分享C++对应的关键字。
2019-01-231