2012-12-02 3 views
0

도우미 클래스의 일부 메서드를 사용해야하지만 내 활동에 도우미 클래스의 개체를 만들 때 문제가 발생합니다. 활동에서 개인 도우미 클래스 참조

HelperClass helper = new HelperClass(); 

내가 위를 할

내가 도우미() 디폴트의 가시성을 할 필요가 없다는 오류가 발생합니다. 다음은 도우미 클래스의 관련 부분입니다.

public class HelperClass { 

private static HelperClass helperClass; 
private String list; 

private HelperClass() { 
    initialiseHelper(); 
} 

HelperClass에서 개인 정보를 제거하면 괜찮 으면서이 클래스를 편집하고 싶지 않습니다. 이 문제를 해결할 방법이 있습니까?

+0

'private'가 아닌 다른 생성자가 있어야합니다. 그걸 사용하십시오. –

+0

이 클래스가 동일한 패키지에 있으면 생성자 패키지를 비공개로 만들거나 public "factory method"를 추가 할 수 있습니다. 이자형. 그것의 객체를 생성하는 정적 메소드. – Vertex

답변

2

그것은 당신이 싱글 패턴을 적용하기 위해 노력하고 있지만, 다음과 같이한다 getInstance() 방법을 누락 것 같아 :

public static synchronized HelperClass getInstance() { 
    if (helperClass == null) { 
     helperClass = new HelperClass(); 
    } 
    return helperClass; 
} 

이제이 방법을 사용해야합니다. e 매우 HelperClass의 인스턴스를 참조하려는 경우 희망이 도움이됩니다.

+0

내 활동에서 이것을 어떻게 부르겠습니까? – Amanni

+0

@Amanni,'HelperClass helperClass = HelperClass.getInstance();' – Egor

0

개인 생성자가 필요한 경우 HelperClass에서 단독 개체를 만들 수 있습니다.

0

Helper 클래스에는 이라고 표시된대로 public 생성자가 없습니다.

또는

public HelperClass{ 

    private HelperClass(){ 
    // do some stuff 
    } 

    public static HelperClass newInstance(){ 
     new HelperClass(); 
    } 
} 

또는 사용 싱글 패턴