PMD教程
1.单词
violations outline:错误大纲
2.错误级别
红色
很高的错误
橙色
错误
黄色
很高的警告
绿色
警告
蓝色
输出信息
3.提示
Avoid excessively long variable names like machineLineService
避免像machineLineService的命名
Local variable 'queryString' could be declared fina
变量应该定义为final
Package name contains upper case characters
包名不应该大写
- Avoid instantiating new objects
inside loops
避免再循环中重复的构建实例
parameter 'ch' is not assigned and could be declared final
参数不分,可以声明为final
Variables that are not final should not contain underscores (except for underscores in standard prefix/suffix).
不是最终的变量不应该带有下划线
Assigning an Object to null is a code smell. Consider
refactoring.
为分配一个对象的代码认为时重构的
得出来的规范
1.变量名字要短
2.不变的string变量要定义为final
3.包名不应该大写
4.最终的变量应该多次命名应该带有下划线
5.avoid循环重复new对象
6.不应该多用括号
7.一个方法应该只有一个返回点
8.使用集合的类的isEmpty()判断集合是否为空
9.符号之间的要空格
10.捕捉了异常再抛出了异常
11.如果字符串的变量多次使用,那么定义为常量
12.不要实例化Sting对象,那样会破坏享元策略
13.方法的名字一定要第一个单词小写,之后每一个单词的首字母大写
14.
violations Overview
Element 包中类的建议提示
#Violations
建议级别
#Violations/LOC
#Violations/Method
Project
属于那个项目里边的
violations Overview 视图的提示
LongVariable
变量过长
MethodeArgumentCouldBeFinal
AvoidInstantiatingObjectsInLoops
循环中重复new对象
LocalVariableCouldBeFinal
变量定义应该用final
使用的时候检测错误有没有解决就手动 在Violations Overview中右键类选择check code with pmd
优化策略
1.避免多个返回点
2.简化if-else 如果出现在返回值时,返回决定
3.不要给Boolean,Integer和String 类型创建新的实例
4.以final类型标记方法参数
5.switch里面要有default
6.final只会负责不可变他负责的那一片内存地址
PMD教程的更多相关文章
- 【李婶小教程】(SE_lab3)
额,今天说一下这个SE_lab3那几个东西都是怎么装的. 啊--其实技术含量貌似不是很高的. 1.先说最简单的一个叫做:Findbugs 点这个Eclipse Marketplace,这是一个神奇的东 ...
- MyEclipse2014 设备 checkstyle、PMD、findbugs 最简单的方法 详细说明
最近的实验需要的代码审查和应用程序性能优化.在需求MyEclipse安装某些插件,由于如今的MyEclipse版本号和大多数教程的不一样了,一些安装选项也已经改变,所以安装起来非常费事,通过不断的尝试 ...
- eclipse插件之Findbugs、Checkstyle、PMD安装及使用
eclipse插件之Findbugs.Checkstyle.PMD安装及使用 一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入 ...
- 2020年B2B外贸建站的终极教程
本文目标:按照本建站教程的顺序操作,能够实现:基于全球份额最大的建站系统“wordpress”,从零搭建一个B2B外贸网站,且建站成本每年小于1000元(如果不计算自己投入的人力成本的话). 模板站点 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
随机推荐
- PHP数据访问修改和多条件查询(20161030)
查询分为关键字查询和准确查询 1.没有提交的时候--查所有 2.两个输入都为空--查所有3.第一个条件有,第二个为空--根据第一个条件查4.第一个没有,第二个有--根据第二个条件查5.两个都有--根据 ...
- Swiper3 的特色功能
- 队列工厂之RedisMQ
本次和大家分享的是RedisMQ队列的用法,前两篇文章队列工厂之(MSMQ)和队列工厂之RabbitMQ分别简单介绍对应队列环境的搭建和常用方法的使用,加上本篇分享的RedisMQ那么就完成了咋们队列 ...
- Office 365 开发概览系列文章和教程
Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...
- yii2.0下拉列表的使用
第一种方法:ActiveForm 类的 dropDownList 方法(优点,默认使用yii的样式) 1.在控制器的方法里面 ,我们需要拿到数据,一定是 findAll() 或者是 all() 方法的 ...
- 转换器5:参考Python源码,实现Php代码转Ast并直接运行
前两个周末写了<手写PHP转Python编译器>的词法,语法分析部分,上个周末卡文了. 访问器部分写了两次都不满意,没办法,只好停下来,参考一下Python的实现.我实现的部分正好和Pyt ...
- 去除IOS浏览器下面的工具栏
在head标签里添加下面的元素 即可 <meta id="viewport" name="viewport" content="width=de ...
- 进入效果 neon
@-webkit-keyframes neon { 0% { opacity: .3; -webkit-transform: scale(2); transform: scale(2); } 100% ...
- Akamai在内容分发网络中的算法研究(翻译总结)
作者 | 钱坤 钱坤,腾讯后台开发工程师,从事领域为流媒体CDN相关,参与腾讯TVideo平台开发维护. 原文是<Algorithmic Nuggets in Content Delivery& ...
- 【C语言】判断三角形类型
根据输入的三角形的三边判断三角形的类型,并输出其面积和类型. #include<stdio.h> #include<stdlib.h> #include<math.h&g ...