The following issues were found

src/test/java/com/alibaba/json/bvt/issue_2200/issue2224_4/MAGroupedCollection.java
1 issues
No abstract method which means that the keyword is most likely used to prevent instantiation. Use a private or protected constructor instead.
Design

Line: 5

              
import com.alibaba.json.bvt.issue_2200.issue2224.KeyedCollection;

abstract class MAGroupedCollection<TKey, TItem> extends KeyedCollection<TKey, TItem[]> {
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_2200/issue2224_5/MA2GroupedCollection.java
1 issues
No abstract method which means that the keyword is most likely used to prevent instantiation. Use a private or protected constructor instead.
Design

Line: 5

              
import com.alibaba.json.bvt.issue_2200.issue2224.KeyedCollection;

abstract class MA2GroupedCollection<TKey, TItem> extends KeyedCollection<TKey, TItem[]> {
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_2200/issue2224_4/MAPersonGroupedCollection.java
1 issues
Potential violation of Law of Demeter (object not created locally)
Design

Line: 11

                      if (array == null || array.length == 0)
            return null;
        Object name = array[0].get("name");
        return name == null ? null : name.toString();
    }
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/parser/TypeReferenceTest.java
1 issues
JUnit 4 tests that execute tests should use the @Test annotation, JUnit 5 tests should use @Test, @RepeatedTest, @TestFactory, @TestTemplate or @ParameterizedTest
Design

Line: 13

              
public class TypeReferenceTest extends TestCase {

    public void test_list() throws Exception {
        List<Long> list = JSON.parseObject("[1,2,3]", new TypeReference<List<Long>>() {});
        Assert.assertEquals(1L, ((Long) list.get(0)).longValue());
    }
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_2200/issue2224_4/MAStringGroupedCollection.java
1 issues
No abstract method which means that the keyword is most likely used to prevent instantiation. Use a private or protected constructor instead.
Design

Line: 3

              package com.alibaba.json.bvt.issue_2200.issue2224_4;

abstract class MAStringGroupedCollection<TItem> extends MAGroupedCollection<String, TItem> {
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_2200/issue2224_2/PersonGroupedCollection.java
1 issues
Potential violation of Law of Demeter (method chain calls)
Design

Line: 12

                  protected String getKeyForItem(List<Person> list) {
        if (list == null || list.isEmpty())
            return null;
        return list.get(0).getName();
    }
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/date/DateNewTest.java
1 issues
JUnit 4 tests that execute tests should use the @Test annotation, JUnit 5 tests should use @Test, @RepeatedTest, @TestFactory, @TestTemplate or @ParameterizedTest
Design

Line: 12

              import junit.framework.TestCase;

public class DateNewTest extends TestCase {
    public void test_date() throws Exception {
        Assert.assertEquals(1324138987429L, ((Date) JSON.parse("new Date(1324138987429)")).getTime());
        Assert.assertEquals(1324138987429L, ((Date) JSON.parse("new \n\t\r\f\bDate(1324138987429)")).getTime());
    }
}

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_1700/issue1763_2/bean/PageResult.java
1 issues
The class 'PageResult' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=16, WMC=16)
Design

Line: 11

               *
 * @author cnlyml
 */
public class PageResult<T> {
    private Integer pageNum;
    private Integer pageSize;
    private Integer size;
    private Integer startRow;
    private Integer endRow;

            

Reported by PMD.

src/test/java/com/alibaba/json/bvt/issue_1700/issue1763_2/bean/CouponResult.java
1 issues
The class 'CouponResult' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=4)
Design

Line: 8

               *
 * @author cnlyml
 */
public class CouponResult{
    /**
     * 优惠券ID
     */
    private Long id;


            

Reported by PMD.

src/test/java/com/alibaba/json/test/entity/Employee.java
1 issues
The class 'Employee' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=16, WMC=17)
Design

Line: 6

              import java.math.BigDecimal;
import java.util.Date;

public class Employee {

    private Long       id;
    private String     number;
    private String     name;
    private String     description;

            

Reported by PMD.