@Singleton 주석을 사용하여 Java EE 6에서 Singleton 클래스를 작성하고 있습니다. 나는 생성자를 선언하지 않았다.@Singleton 클래스는 생성자를 비공개로 설정해야합니까?
개인 생성자를 명시 적으로 만들어야합니까?
내가 묻는 이유는 내가 PMD를 사용하고 있으며, UseSingleton 이라는 규칙이 사용되었다는 것입니다. PMD가 @Singleton 주석을 이해하지 못한다고 생각합니까?
@Singleton 주석을 사용하여 Java EE 6에서 Singleton 클래스를 작성하고 있습니다. 나는 생성자를 선언하지 않았다.@Singleton 클래스는 생성자를 비공개로 설정해야합니까?
개인 생성자를 명시 적으로 만들어야합니까?
내가 묻는 이유는 내가 PMD를 사용하고 있으며, UseSingleton 이라는 규칙이 사용되었다는 것입니다. PMD가 @Singleton 주석을 이해하지 못한다고 생각합니까?
PMD는 다른 사람이 당신의 싱글 톤 객체를 인스턴스화 할 수 있도록 생성자 private
을 추천한다. Java EE 6 주석을 인식하지 못합니다.
이 경고는 무시해도됩니다.
아니요. 빈 클래스에 @Singleton을 추가하십시오.
@Singleton
public class TesterBean {
private int testCount = 0;
public int getCount() {
return testCount++;
}
}
개인 생성자를 private로 만들었을 때 런타임에 클래스를로드하는 동안 문제가 발생 했으므로 생성자를 제거하기 위해 PMD에 경고를 표시 할 방법이 있는지, @SuppressWarnings ("PMD")도 넣습니다. @SuppressWarnings ("PMD.UseSingletone")을 사용하려고 시도했지만 취하지 않았으므로 일부 경고 이음새를 억제 할 수 없습니다. –
J2EE의 경우 리플렉션을 통해 호출 할 수 있도록 생성자를 public으로 유지해야합니다. PMD로 경고를 어떻게 억제하는지 잘 모르겠습니다. ( –