PMD – Cloneルール・セット

クローンに関するルールセットです。
※PMD 3.9に対応しています。

ProperCloneImplementation

super.clone()を呼び出しているかチェックします。

class Foo
{
    public Object clone()
    {
        // super.clone()を呼び出していないのでNG!
        return new Foo();
    }
}

CloneThrowsCloneNotSupportedException

clone()メソッドでCloneNotSupportedExceptionをスローしているかチェックします。

public class MyClass implements Cloneable
{
    // CloneNotSupportedExceptionが発生するはずなのにスローしていないのでNG!
    public Object clone()
    {
        MyClass clone = (MyClass)super.clone();
        return clone;
    }
}

CloneMethodMustImplementCloneable

Cloneableインターフェイスを実装しているかチェックします。

// Cloneableインターフェイスを実装していないのでNG!
public class MyClass
{
    public Object clone() throws CloneNotSupportedException
    {
        return foo;
    }
}

コメント

Copied title and URL