我的特一营演员(我的特一营演员表小岛)
7152023-12-02
各位老铁们,大家好,今天由我来为大家分享为什么不推荐使用Lombok,以及java注解不建议使用的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
本文目录
目前Lombok并没有爆出有什么坑,还是推荐大家使用的,主要确实是方便和简洁,eclipse和idea都支持这种插件,使用起来特别方便,代码看起来很简洁,如果一个bean对象有二十几个属性,下面一大堆get和set方法,不利于代码的维护,用了Lombok插件,只要写上属性和相应的注解就可以了。
要说有什么缺点,那就是不能你一个人用,得一组人一起用,不然别人同步代码以后会报错。
对的,众所周知Java是解释执行,当你写了越多注释,则需要解释的字符串也越多,自然效率浪费的也越多,对于一般的编程语言来说,注释在编译的时候会忽略不计,但是对java来说它是解释注释操的。注释得越多,需要解释答字符串也就越多,所以一个基本原则就是,Java代码要写的越短越好,可惜由于语言设计原因,Java代码一般都很长,所以很多人对Java的执行效率不满。
我认识的很多程序员工作两年了,我都会问他会什么,其实一般得到的答案都差不多,感觉自己就会增删查改,什么也不会。其实Java开发最开始就一个增删查改,仅此而已。为什么觉得自己不会,心理上还觉得自己做不来了,为题主分析分析:
为什么从看代码就觉得自己不会做过一到两年开发的小伙伴,跳槽过几次的小伙伴应该大部分都遇到过,你被分配岗位过去是接二手代码来开发,接二手代码开发去了之后基本就是在看上一个人的代码,其实大家都有体会,看别人代码很多地方是看不懂的,特别是业务逻辑比较复杂的地方,如果还没有注释,你基本上就会在内心中疯狂的问候上一位开发者。你看不懂其实是一个很正常的事情,你想想,你把你一个月之前写的代码拿出来可能你也会看不懂。
其次就是题主是刚入职,没理解错的话,应该是第一份开发工作,第一次就接到二手代码确实是有点茫然,不知道从那里开始,在加上自己心理没底导致怀疑自己的能力,其实大可不必,因为如果刚开始的工作内容上面答主也说了,基本就是增删查改,没有深特别高深的东西,特别深的东西你们组长也不可能给你去做。
要看业务,不要看代码,代码是别人写的,业务是需要自己理解的。企业让你看代码是为了什么如果是接二手项目的话,第一:让题主自己知道上一个开发者做到那里来了,这样在接着写的话,你自己也有头绪;第二,你自己也要对基本的业务流程有一定的熟悉。因为开始的业务不是你写的,所以对整个模块的业务功能的理解上可能不够深入,所以需要去看看上位开发者来帮助自己理解。
如果是公司的主要营收项目,那么如果让题主去看代码是为了让题主能理解之前项目中整个业务过程,好做对应的有业务关联的下一个项目的开发,或者对对应的功能做升级,或者要添加新的功能做二次开发。
如果公司比较大,自己去根据自己业务改出来的框架或者技术做的项目,但是这种情况一般都会做事先的培训工作,在去接触代码的。那么这个时候看代码是为了让你熟悉公司自己的东西,后期好马上入手进行开发工作。
不要真的被别人写的代码毒到了,看代码就是为了业务怎么样让自己能快速的进入项目才是最主要的不管是什么原因去看代码,其实最主要的是快速熟悉业务准备进行后期的开发。在题主看代码的时候一般相应会给你开发文档,这个时候不要盲目的去看代码,最好的方式就是结合着开发文档一步一步的去查看对应业务的代码,在看代码的时候最好不要在某些上一个开发者写的比较复杂的业务逻辑代码上纠结,你只要知道这段代码是给你做了一件什么事情就行了,因为上面就说过,别人写的代码你是很难看懂的。主要是理解现在的业务逻辑流程,然后随着这个流程能让自己有所理解,并且如果是做二次开发能接着开发,如果是二手代码能继续上一个人的位置能继续开始。
其实主要的开发都是增,删,查,改;要相信自己能行总结:看代码其实就是为了让你自己能理通业务逻辑,所以不要一直纠结看不懂别人写的代码,每个人有自己的想法,同一个业务可能不同的人写有不同的写法。千万不要觉得看不懂别人的代码就否定自己,相信自己,说的在不好听一点,不会那么我们就去学呗。
以上是答主自己的个人意见,如果有更好看法的小伙伴,可以在下方评论区留言,或者点个赞,加个关注,我们一起探讨探讨。
一、什么是注解
注解也叫元数据,例如我们常见的@Override和@Deprecated,注解是JDK1.5版本开始引入的一个特性,
用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。
一般常用的注解可以分为三类:
1、Java自带的标准注解,包括@Override(标明重写某个方法)、@Deprecated(标明某个类或方法过时)和@SuppressWarnings(标明要忽略的警告),使用这些注解后编译器就会进行检查。
2、类为元注解,元注解是用于定义注解的注解,包括@Retention(标明注解被保留的阶段)、@Target(标明注解使用的范围)、@Inherited(标明注解可继承)、@Documented(标明是否生成javadoc文档)
3、类为自定义注解,可以根据自己的需求定义注解
二、注解的用途
在看注解的用途之前,有必要简单的介绍下XML和注解区别,
注解:是一种分散式的元数据,与源代码紧绑定。
xml:是一种集中式的元数据,与源代码无绑定
当然网上存在各种XML与注解的辩论哪个更好,这里不作评论和介绍,主要介绍一下注解的主要用途:
生成文档,通过代码里标识的元数据生成javadoc文档。
编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。
编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。
运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例
三、注解的实现原理
实现注解三要素:
1、注解声明
2、使用注解的元素
3、操作注解使其起作用(注解处理器)
注解声明
首先我们让看一下java中的元注解(也就是上面提到的注解的注解),总共有4个如下:
@Target,@Retention,@Documented,@Inherited这4个元注解都是在jdk的java.lang.annotation包下面,
@Target:Target说明的是Annotation所修饰的对象范围。@Retention:
定义了该Annotation被保留的时间长短:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,
而另一些在class被装载时将被读取(请注意并不影响class的执行,因为Annotation与class在使用上是被分离的)。
使用这个元注解可以对Annotation的“生命周期”限制。@Documented:@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员
@Inherited:@Inherited元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,
则这个annotation将被用于该class的子类。
注意:@Inheritedannotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。
当@Inheritedannotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。如果我们使用java.lang.reflect去查询一个@Inheritedannotation类型的annotation时,
反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层。
java.lang.reflect.AnnotatedElement接口是所有程序元素(Class、Method和Constructor)的父接口,所以程序通过反射获取了某个类的AnnotatedElement对象之后,程序就可以调用该对象的如下四个个方法来访问Annotation信息:
方法1:<TextendsAnnotation>TgetAnnotation(Class<T>annotationClass):返回改程序元素上存在的、指定类型的注解,如果该类型注解不存在,则返回null。
方法2:Annotation[]getAnnotations():返回该程序元素上存在的所有注解。
方法3:booleanisAnnotationPresent(Class<?extendsAnnotation>annotationClass):判断该程序元素上是否
OK,本文到此结束,希望对大家有所帮助。