2016-08-24 3 views
0

나는 Junit을 사용하여 작업하고있는 세 개의 Java 파일을 가지고 있습니다.java 사이의 enum 정적 변수 참조

테스트 클래스는 기본 클래스에있는 열거 형에 관해서 오류가 발생합니다.

편집

나는이 같이 일하던는 것을 알아 냈다. 대규모 구현이 아닙니다.

Goods.java

class Good { 
    private static StaticTest.THESES name; 
    static void setStatusName(StaticTest.THESES status) { 
     name = status; 
    } 
    static StaticTest.THESES getStatusName() { 
     return name; 
    } 
} 

Test.class라는에게

import org.junit.Test; 
import static org.junit.Assert.*; 

public class Tests { 

    @Test 
    public void test() { 
     Good good = new Good(); 
     good.setStatusName(Library.STATUSES.HIM); 
     String actual = good.getStatusName().toString(); 

     String expected = Library.STATUSES.HIM.toString(); 
     assertEquals(expected, actual); 
    } 

    public static void main(String args[]) { 
     Tests runningTest = new Tests(); 
     runningTest.test(); 
    } 
} 

class Library { 
    public static enum STATUSES { 
     YOU, ME, HER, HIM, THEM, US 
    } 
} 

당신이 내 제품 클래스의 모든 값을 찾을 수없는 것을 말해 줄 수?

+2

'private Library.STATUSES status;는 '정적'이 아닙니다. 이 코드는 quirk 때문에 컴파일 만합니다.'status = status'는 그 값을 _itself_에 할당합니다. –

+0

Java 명명 규칙을 따르십시오. –

+0

@BoristheSpider'getStatus()'가 컴파일되지 않는다고 생각합니다. – shmosel

답변

0

static을 선언하는 것이 무엇을 의미하는지 더 잘 이해할 필요가 있습니다. 나는 각각 Good이 자신의 상태 권리를 가져야 할 것이라고 생각합니다. 따라서 private statusstatic으로 선언하지 않으면 바른 길을 가고 있습니다. 귀하의 문제 (보리스 지적) (클래스 수준) 메서드를 사용하여 status 인스턴스 변수를 변경하려고하는 것입니다.

나는 당신이 당신을 시작하기 위해 아래와 같은 것을 사용하기를 원할 것이라고 생각한다.

public class Test { 

    public static void main(String[] args) { 
     Good good = new Good(); 
     good.setStatus(Library.STATUS.SALE); 
     System.out.println("Good's status: " + good.getStatus()); 
    } 

} 

class Good { 

    private Library.STATUS status; 

    public void setStatus(Library.STATUS status) { 
     this.status = status; 
    } 
    public Library.STATUS getStatus() { 
     return status; 
    } 
} 

class Library { 

    public enum STATUS { 
      SALE, NOSALEITEM, ITEMOOS, SHIPPING, ONORDER, INSTOCK 
    } 
} 
관련 문제