2013-04-06 3 views
-3

나는 아주 이상한 문제를 직면하고있다.정적 변수 이상한 동작 안드로이드에

클래스 내에서 하나의 정적 변수를 업데이트하면 클래스의 다른 정적 변수도 업데이트됩니다. 왜 이런 일이 발생하는지 알 수 없습니다.

제발 나를 도와주세요. 나는이 문제를 어떻게 처리해야할지조차 모릅니다.

이 줄을 만드는 데 문제가 있습니다.

private static cSet currentSet = new cSet(); 
private static cSet currentPracticeSet = new cSet(); 
    public static void setCurrentPracticeSetRange(int from, int to) 
{ 
    Log.e(currentPracticeSet.getCards().size()+" And "+currentSet.getCards().size(), to+" and "+from); 
    getCurrentPracticeSet().getCards().clear(); 
    getCurrentPracticeSet().getCards().addAll(getCurrentSet().getCards().subList(from, to)); 

    Log.e("Range",currentSet.getCards().size()+""); 
} 

currentSet 및 CurrentPracticeSet은 class의 개인 정적 멤버입니다. 감사합니다,

+2

'정적'의 의미입니다. –

+0

더 좋았지 만 여전히 정적 변수 선언을 봐야합니다. –

+0

그래, 나도 몰라. 만약 내가 추측한다면'currentSet'을'currentPracticeSet' (또는 그 반대로)로 당신의 코드 어딘가에 설정한다고 말하고 싶습니다. 그렇게하면, 두 변수는 이제 같은 집합을 가리 킵니다. * –

답변

2

정적은 변수의 범위가 객체가 아니라 클래스에 의해 묶여 있음을 의미합니다. 하나의 값을 변경하면 모두 변경됩니다.

자세한 내용은 here을 참조하십시오.

+0

'static '은 변수의 범위가 클래스 정의로 지정됨을 의미합니다. 실제로 "인스턴스"는 아닙니다. –

+0

@RobertHarvey 나는 정적에 대해 내가 왜 그들을 사용하고 있는지 안다. 하지만 이것은 하나의 클래스에서 2 개의 정적 변수를 가지고 있다는 것을 이상합니다. 하나의 변수를 변경하면 다른 변수도 업데이트됩니다. –

+1

@AhmadRaza : 변수 선언을 포함하는 코드를 보여주십시오. 내 생각 엔 두 변수를 잘못 설정 한 코드에 오류가 있습니다. –