提高Java开发效率常用插件_第1页
提高Java开发效率常用插件_第2页
提高Java开发效率常用插件_第3页
提高Java开发效率常用插件_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、提高Java开发效率-常用插件最近编程被推荐了几个比较好用的插件,现在来总结下,虽然网上已经有不少安装,使用教程,但是为了自己的以后的学习使用,自己也就写一下。lomo(IDEAmyeclipseeclij安装以及使用Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。如实体类中的getter,setter之类的一系列方法。使我们的代码看起来更加的整洁简练,缺点就是若是不了解lombok,会造成可读性差。lombok官方地址:,lombok的GitHub地址:。IDEA安装lombok在线

2、安装:菜单File-Settings-Plugins-Browserepositories.-搜索框内搜索lombok-得到结果Lombokplugin,下载(install)并重新启动就ok了。(2)离线安装:首先要下载lombok.jar,下载网址:,然后菜单File-Settings-Plugins-Installplugfromdisk-选择你下载的lombok.jar,然后apply-OK,重启就ok了。myeclipse或eclipse安装lombok首先在下载lombok.jar,并打开myeclipse或eclipse的安装目录,找到myeclipse.ini/eclipse.

3、ini所在的文件目录。打开myeclipse.ini/eclipse.ini,在配置的最后加上-javaagent:lombok.jar-Xbootclasspath/a:lombok.jar保存后重启myeclipse或eclipse。Javamaven项目中使用lombok,添加lombok依赖jectlomboklombok-mavenpom二sonFormatIDEA安装以及使用(myeclipse和eclipse就放弃吧,不适用)主要用于使用Gson库将JSONObject格式的String解析成实体,也就是快速的将json数据转转成你想要的实体类(J

4、avaBean),这样方便了你根据前端给你所要求的的json数据格式去设计JavaBean。GsonFormat的GitHub地址:。(希望有大神开发一款针对eclipse和myeclipse的同作用插件,如果读者知道已经开发出了,请私信或评论留下插件名字,下载地址,万分感谢)IDEA安装GsonFormat在线安装:菜单File-Settings-Plugins-Browserepositories.-搜索框内搜索GsonFormat-得到结果GsonFormat,下载(install)并重新启动就ok了。(2)离线安装:首先要下载GsonFormatjar,下载网址:,然后菜单File-S

5、ettings-Plugins-Installplugfromdisk-选择你下载的GsonFormat.jar,然后apply-OK,重启就ok了。IDEA使用GsonFormat(1)首先你需要在项目中建立一个空的JavaBean(不带任何属性),将鼠标移动到这个JavaBean的编辑区域1.Alt+Insert,在弹出的框中选择GsonFormat2.Alt+s。(2)将你复制的json串,放入经过以上任意一部所打开的窗口,粘贴上去,点击OK,接着在弹出的窗口中,你可以选择属性,和改变属性的数据类型等。三.FindBugs(IDEA,myeclipse,eclipse)安装以及使用有时候

6、随着项目的越写越大,时间越来越长,项目的审查工作是个巨大的负担,而且有时候我们会不小心忽略一些问题,这个时候我们需要些代码检查工具代替我们去检查代码,所以FindBugs是个静态分析工具,能检查程序潜在bug,在bug报告中快速定位到问题的代码上,大大的节省了我们的时间,不过它也不是万能的,不可能面面俱到,一些它提供的错误还需要我们人工去判断。FindBugs是检查java字节码,也就是*.class文件。建议如果英文不好初期+谷歌翻译同时使用IDEA安装FindBugs在线安装:菜单File-Settings-Plugins-Browserepositories.-搜索框内搜索FindBug

7、s-得到结果FindBugs-IDEA,下载(install)并重新启动就ok了。(2)离线安装:首先要下载FindBugs压缩包,下载网址:,然后菜单File-Settings-Plugins-Installplugfromdisk-选择你下载的FindBugs压缩包(因为包含jar包较多),然后apply-OK,重启就ok了。myeclipse和eclipse安装FindBugsmyeclipse和eclipse安装FindBugs需要注意myeclipse和eclipse的版本以及jdk的版本是否和你所安装的FindBugs版本兼容在线安装:然后点击OK,选择FindBugs,然后可以一

8、路Next到Finish,重启myeclipse或eclipse,选中任意项目,右击鼠标,如弹出的框中出现findbugs,则表示安装成功或打开eclipse或myeclipse-window-Preferences,搜索关键字findbugs,如果能找到配置项,那么表示安装成功。离线安装:首先需要下载你所适用的FindBugs的压缩包:下载网址:,然后打开myeclipse或eclipse的安装目录,找到dropins或plugins(任意一个),将压缩包放入直接解压到此目录,然后启动myeclipse或eclipse,选中任意项目,右击鼠标,如弹出的框中出现findbugs,则安装成功或打

9、开eclipse或myeclipse-window-Preferences,搜索关键字findbugs,如果能找到配置项,那么表示安装成功。若是点击项目FindBugs-FindBugs后没有出现BugExplorer,则Window-ShowView-Other-FindBugs-BugExplorer。找出的bug有3中颜色,黑色的臭虫标志是分类,红色的臭虫表示严重bug发现后必须修改代码,橘黄色的臭虫表示潜在警告性bug。IDEA中使用FindBugs:选中项目,包,类,右击鼠标,选择FindBugs,AnalyzeSelectedFile(s)单个文件,AnalyzePackage(s

10、)Files包下文件,AnalyzeModuleFiles整个module,AnalyzeProjectFiles整个工程些常见的错误:以下是复制,修改别人的,为了以后方便自己学习,多多担待Badpractice主要是代码中的一些坏习惯,没有按Java规范来Classnamesshouldstartwithanuppercaseletter主要包括类名的命名,以大写字母开头Methodnamesshouldstartwithalowercaseletter方法名以小写字母开头Fieldnamesshouldstartwithalowercaseletter字段名以小写字母开头equals()m

11、ethoddoesnotcheckfornullargumentequals()方法应该检查非空Classdefinesequals()andusesObject.hashCode()个类覆写了equals方法,没有覆写hashCode方法,使用了Object对象的hashCode方法Methodignoresexceptionalreturnvalue方法忽略返回值的异常信息Equalsmethodshouldnotassumeanythingaboutthetypeofitsargumentequals(Objecto)方法不能对参数o的类型做任何的假设。比较此对象与指定的对象。当且仅当该

12、参数不为null,并且是表示与此对象相同的类型的对象时,结果才为true。ComparisonofStringobjectsusing=or!=用=或者!=去比较String类型的对象Methodmightignoreexception方法可能忽略异常MethodinvokesSystem.exit()在方法中调用System.exit()语句,考虑用RuntimeException来代替MethodignoresresultofInputStream.read()InputStream.read方法忽略返回的多个字符,如果对结果没有检查就没法正确处理用户读取少量字符请求的情况。Dodgyco

13、de糟糕的代码(一般是没有按Java规范来写代码,或语句不全,类型转换,多余的语句,判断)SwitchstatementfoundwheredefaultcaseismissingSwitch没有默认情况下执行的case语句SwitchstatementfoundwhereonecasefallsthroughtothenextcaseSwitch语句中一个分支执行后又执行了下一个分支。通常case后面要跟break或者return语句来跳出。case后面要跟break或者return语句来跳出。Deadstoretolocalvariable该指令为局部变量赋值,但在其后的没有对她做任何使用

14、。通常,这表明一个错误,因为值从未使用过。Writetostaticfieldfrominstaneemethod在实例方法写入静态字段Redundantnullcheckofvalueknowntobenon-null方法中对不为空的值进行为空的判断。Methodusesthesamecodefortwobranches此方法使用相同的代码,以实现两个有条件的分支。检查以确保这是不是一个编码错误ExceptioniscaughtwhenExceptionisnotthrown在try/catch块中捕获异常,但是异常没有在try语句中抛出而RuntimeException又没有明确的被捕获I

15、ntegraldivisionresultcasttodoubleorfloat整形数除法强制转换为double或者float类型。Possiblenullpointerdereferenceduetoreturnvalueofcalledmethod方法的返回值没有进行是否为空的检查就重新赋值,这样可能会出现空指针异常。Uselessobjectcreated对象创建了并没有用Unreadpublic/protectedfield没有用到的字段Internationalization关于代码国际化相关方面的ConsiderusingLocaleparameterizedversionofin

16、vokedmethod使用平台默认的编码格式对字符串进行大小写转换,这可能导致国际字符的转换不当。使用以下方式对字符进行转换Performanee关于代码性能相关方面的(多为声明了无用的属性)Boxing/unboxingtoparseaprimitive类型转换比如字符串转换成int应该使用Integer.parselnt()代替Integer.valueOf()Methodconcatenatesstringusing+inaloop每次循环里的字符串+连接,都会新产生一个string对象,在java中,新建一个对象的代价是很昂贵的,特别是在循环语句中,效率较低解决办法:使用StringB

17、uffer或者StringBuilder重用对象。Privatemethodisnevercalled私有方法没有被调用Explicitgarbagecollection;extremelydubiousexceptinbenchmarkingcode在代码中显式的调用垃圾回收命名,这样做并不能起作用。在过去,有人在关闭操作或者finalize方法中调用垃圾回收方法导致了很多的性能浪费。这样大规模回收对象时会造成处理器运行缓慢。Unreadfield:shouldthisfieldbestatic?没有用到的static字段shouldbeastaticinnerclass此内部类应该使用st

18、atic修饰ExperimentalMethodmayfailtocleanupstreamorresourceoncheckedexception这种方法可能无法清除(关闭,处置)一个流,数据库对象,或其他资源需要一个明确的清理行动解决方法:流的关闭都写在finally里面Maliciouscodevulnerability关于恶意破坏代码相关方面的(主要是一些属性,建议改为private并为其提供get,set方法)Mayexposeinternalrepresentationbyincorporatingreferencetomutableobject此代码把外部可变对象引用存储到对象的

19、内部表示。如果实例受到不信任的代码的访问和没有检查的变化危及对象和重要属性的安全。存储一个对象的副本,在很多情况下是更好的办法。Fieldisntfinalbutshouldbe此字段前应该加finalFieldisntfinalandcantbeprotectedfrommaliciouscode此字段前应该口finalFieldshouldbepackageprotected个静态字段是可以被恶意代码或其他的包访问修改。可以把这种类型的字段声明为final类型的以防止这种错误。Multithreadedcorrectness关于代码正确性相关方面的StaticDateFormatDateFor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论