ali-set.xml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?xml version="1.0"?>
  2. <ruleset name="AlibabaJavaSets" 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="ClassCastExceptionWithToArrayRule"
  6. message="java.set.ClassCastExceptionWithToArrayRule.rule.msg"
  7. class="com.alibaba.p3c.pmd.lang.java.rule.set.ClassCastExceptionWithToArrayRule">
  8. <priority>2</priority>
  9. <example>
  10. <![CDATA[
  11. Negative example:
  12. Integer[] a = (Integer [])c.toArray();
  13. ]]>
  14. </example>
  15. <example>
  16. <![CDATA[
  17. Positive example:
  18. Integer[] b = (Integer [])c.toArray(new Integer[c.size()]);
  19. ]]>
  20. </example>
  21. </rule>
  22. <rule name="UnsupportedExceptionWithModifyAsListRule"
  23. message="java.set.UnsupportedExceptionWithModifyAsListRule.rule.msg"
  24. class="com.alibaba.p3c.pmd.lang.java.rule.set.UnsupportedExceptionWithModifyAsListRule">
  25. <priority>2</priority>
  26. <example>
  27. <![CDATA[
  28. Positive example:
  29. List<String> t = Arrays.asList("a","b","c");
  30. //warn
  31. t.add("22");
  32. //warn
  33. t.remove("22");
  34. //warn
  35. t.clear();
  36. ]]>
  37. </example>
  38. </rule>
  39. <rule name="ClassCastExceptionWithSubListToArrayListRule"
  40. message="java.set.ClassCastExceptionWithSubListToArrayListRule.rule.msg"
  41. class="com.alibaba.p3c.pmd.lang.java.rule.set.ClassCastExceptionWithSubListToArrayListRule">
  42. <description>java.set.ClassCastExceptionWithSubListToArrayListRule.rule.msg.desc</description>
  43. <priority>2</priority>
  44. <example>
  45. <![CDATA[
  46. Negative example:
  47. List<String> list = new ArrayList<String>();
  48. list.add("22");
  49. //warn
  50. List<String> test = (ArrayList<String>) list.subList(0, 1);
  51. ]]>
  52. </example>
  53. <example>
  54. <![CDATA[
  55. Positive example:
  56. List<String> list2 = new ArrayList<String>(list.subList(0, 1));
  57. ]]>
  58. </example>
  59. </rule>
  60. <rule name="ConcurrentExceptionWithModifyOriginSubListRule"
  61. message="java.set.ConcurrentExceptionWithModifyOriginSubListRule.rule.msg"
  62. class="com.alibaba.p3c.pmd.lang.java.rule.set.ConcurrentExceptionWithModifyOriginSubListRule">
  63. <priority>2</priority>
  64. <example>
  65. <![CDATA[
  66. Negative example:
  67. List<String> originList = new ArrayList<String>();
  68. originList.add("22");
  69. List<String> subList = originList.subList(0, 1);
  70. //warn
  71. originList.add("22");
  72. ]]>
  73. </example>
  74. </rule>
  75. <rule name="DontModifyInForeachCircleRule"
  76. message="java.set.DontModifyInForeachCircleRule.rule.msg"
  77. class="com.alibaba.p3c.pmd.lang.java.rule.set.DontModifyInForeachCircleRule">
  78. <priority>1</priority>
  79. <example>
  80. <![CDATA[
  81. Negative example:
  82. List<String> originList = new ArrayList<String>();
  83. originList.add("22");
  84. for (String item : originList) {
  85. //warn
  86. list.add("bb");
  87. }
  88. ]]>
  89. </example>
  90. <example>
  91. <![CDATA[
  92. Positive example:
  93. Iterator<Integer> it=b.iterator();
  94. while(it.hasNext()){
  95. Integer temp = it.next();
  96. if (delCondition) {
  97. it.remove();
  98. }
  99. }
  100. ]]>
  101. </example>
  102. </rule>
  103. <rule name="CollectionInitShouldAssignCapacityRule"
  104. message="java.set.CollectionInitShouldAssignCapacityRule.rule.msg"
  105. class="com.alibaba.p3c.pmd.lang.java.rule.set.CollectionInitShouldAssignCapacityRule">
  106. <description>java.set.CollectionInitShouldAssignCapacityRule.rule.msg.desc</description>
  107. <priority>3</priority>
  108. <example>
  109. <![CDATA[
  110. Negative example:
  111. Map<String, String> map = new HashMap<String, String>();
  112. ]]>
  113. </example>
  114. <example>
  115. <![CDATA[
  116. Positive example:
  117. Map<String, String> map = new HashMap<String, String>(16);
  118. ]]>
  119. </example>
  120. </rule>
  121. </ruleset>