ali-oop.xml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?xml version="1.0"?>
  2. <ruleset name="AlibabaJavaOop" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
  5. <rule name="EqualsAvoidNullRule"
  6. language="java"
  7. message="java.oop.EqualsAvoidNullRule.rule.msg"
  8. class="com.alibaba.p3c.pmd.lang.java.rule.oop.EqualsAvoidNullRule">
  9. <priority>2</priority>
  10. <example>
  11. <![CDATA[
  12. public void f(String str){
  13. String inner = "hi";
  14. if (inner.equals(str)) {
  15. System.out.println("hello world");
  16. }
  17. }
  18. ]]>
  19. </example>
  20. </rule>
  21. <rule name="WrapperTypeEqualityRule"
  22. language="java"
  23. message="java.oop.WrapperTypeEqualityRule.rule.msg"
  24. class="com.alibaba.p3c.pmd.lang.java.rule.oop.WrapperTypeEqualityRule">
  25. <description>java.oop.WrapperTypeEqualityRule.rule.desc</description>
  26. <priority>1</priority>
  27. <example>
  28. <![CDATA[
  29. Integer a = 235;
  30. Integer b = 235;
  31. if (a.equals(b)) {
  32. // code
  33. }
  34. ]]>
  35. </example>
  36. </rule>
  37. <rule name="PojoMustUsePrimitiveFieldRule"
  38. language="java"
  39. message="java.oop.PojoMustUsePrimitiveFieldRule.rule.msg"
  40. class="com.alibaba.p3c.pmd.lang.java.rule.oop.PojoMustUsePrimitiveFieldRule">
  41. <description>java.oop.PojoMustUsePrimitiveFieldRule.rule.msg.desc</description>
  42. <priority>3</priority>
  43. <example>
  44. <![CDATA[
  45. public class DemoDO {
  46. String str;
  47. Integer a;
  48. }
  49. ]]>
  50. </example>
  51. </rule>
  52. <rule name="PojoNoDefaultValueRule"
  53. language="java"
  54. message="java.oop.PojoNoDefaultValueRule.rule.msg"
  55. class="com.alibaba.p3c.pmd.lang.java.rule.oop.PojoNoDefaultValueRule">
  56. <priority>3</priority>
  57. <example>
  58. <![CDATA[
  59. public class DemoDO {
  60. String str;
  61. Integer a;
  62. }
  63. ]]>
  64. </example>
  65. </rule>
  66. <rule name="PojoMustOverrideToStringRule"
  67. language="java"
  68. message="java.oop.PojoMustOverrideToStringRule.rule.msg"
  69. class="com.alibaba.p3c.pmd.lang.java.rule.oop.PojoMustOverrideToStringRule">
  70. <description>java.oop.PojoMustOverrideToStringRule.rule.desc</description>
  71. <priority>3</priority>
  72. <example>
  73. <![CDATA[
  74. public class ToStringDemo extends Super{
  75. private String secondName;
  76. @Override
  77. public String toString() {
  78. return super.toString() + "ToStringDemo{" + "secondName='" + secondName + '\'' + '}';
  79. }
  80. }
  81. class Super {
  82. private String firstName;
  83. @Override
  84. public String toString() {
  85. return "Super{" + "firstName=" + firstName + '\'' + '}';
  86. }
  87. }
  88. ]]>
  89. </example>
  90. </rule>
  91. <rule name="StringConcatRule"
  92. language="java"
  93. message="java.oop.StringConcatRule.rule.msg"
  94. class="com.alibaba.p3c.pmd.lang.java.rule.oop.StringConcatRule">
  95. <description>java.oop.StringConcatRule.rule.msg.desc</description>
  96. <priority>3</priority>
  97. <example>
  98. <![CDATA[
  99. Negative example:
  100. String result;
  101. for (String string : tagNameList) {
  102. result = result + string;
  103. }
  104. ]]>
  105. </example>
  106. <example>
  107. <![CDATA[
  108. Positive example:
  109. StringBuilder stringBuilder = new StringBuilder();
  110. for (String string : tagNameList) {
  111. stringBuilder.append(string);
  112. }
  113. String result = stringBuilder.toString();
  114. ]]>
  115. </example>
  116. </rule>
  117. </ruleset>