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教程的更多相关文章

  1. 【李婶小教程】(SE_lab3)

    额,今天说一下这个SE_lab3那几个东西都是怎么装的. 啊--其实技术含量貌似不是很高的. 1.先说最简单的一个叫做:Findbugs 点这个Eclipse Marketplace,这是一个神奇的东 ...

  2. MyEclipse2014 设备 checkstyle、PMD、findbugs 最简单的方法 详细说明

    最近的实验需要的代码审查和应用程序性能优化.在需求MyEclipse安装某些插件,由于如今的MyEclipse版本号和大多数教程的不一样了,一些安装选项也已经改变,所以安装起来非常费事,通过不断的尝试 ...

  3. eclipse插件之Findbugs、Checkstyle、PMD安装及使用

    eclipse插件之Findbugs.Checkstyle.PMD安装及使用 一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入 ...

  4. 2020年B2B外贸建站的终极教程

    本文目标:按照本建站教程的顺序操作,能够实现:基于全球份额最大的建站系统“wordpress”,从零搭建一个B2B外贸网站,且建站成本每年小于1000元(如果不计算自己投入的人力成本的话). 模板站点 ...

  5. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  6. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  7. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  8. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  9. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

随机推荐

  1. Servlet中过滤器的执行流程

  2. 大数据系列之Flume--几种不同的Sources

    1.flume概念 flume是分布式的,可靠的,高可用的,用于对不同来源的大量的日志数据进行有效收集.聚集和移动,并以集中式的数据存储的系统. flume目前是apache的一个顶级项目. flum ...

  3. Django通用视图执行过程

    使用通用视图后,Django请求处理过程(以ListView为例):在我们自定义的视图中: class IndexView(ListView): template_name = 'blog/index ...

  4. 《Machine Learning》系列学习笔记之第一周

    <Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, in ...

  5. HTML页面内容禁止选择、复制、右键

    <body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectst ...

  6. 简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群  群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性p ...

  7. C#文件上传类,文件流,字节数组等

    using System;using System.IO;using System.Web;using System.Web.UI.WebControls; namespace DotNet.Util ...

  8. socket bind详解

    http://www.cnblogs.com/nightwatcher/archive/2011/07/03/2096717.html 在最开始接触bind的时候,只是在写基于tcp的server端的 ...

  9. (转)Java线程面试题 Top 50

    原文链接:http://www.importnew.com/12773.html   本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入Java小组.转载请参见文章末 ...

  10. html结合js实现简单的树状目录

    最近在学jsp,期末了要做项目,需要用到树状目录,百度了很多,都没有找到想要的答案,最后自己折腾了半天,才搞定. 下面我就来分享一下怎么实现一个简单的树状目录: 1. 下载jquery-treevie ...