2014-12-03 2 views
0

전 포켓몬 종류의 열거 형을 만들고 있습니다. 각 유형에는 강도, 약점 및 면역 유형이 있습니다. 각 유형의 강도와 약점을 저장하는 여러 배열에 Types를 전달하려고합니다.어떻게 열거 형에서 배열을 생성자에 전달할 수 있습니까?

가 나는 arrray을 전달하는 같은 내가

int [] x = {1, 2, 3, 88}; 

같은 배열을 정의 할 수 있습니다 그리고 내가 시도한 것을 알고있다 : -

// For the sake of simplicity, all types have the same parameters for now... 
    public enum Type { 

    NORMAL ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    FIGHTING ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    FLYING ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    POISON ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    GROUND ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    ROCK ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    BUG ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    GHOST ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    STEEL ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    FIRE ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    WATER ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    GRASS ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    ELECTRIC ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    PHYSIC ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    ICE ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    DRAGON ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    DARK ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}), 
    FAIRY ({Type.STEEL, Type.PHYSIC}, {Type.FIGHTING, Type.POISON}, {Type.GHOST}); 

    private Type [] weak, strong, ineffective; 

    Type (Type [] weak, Type [] strong, Type [] ineffective) { 

     this.weak = weak; 
     this.strong = strong; 
     this.ineffective = ineffective; 

    } 

} 

내 IDE, BlueJ의는의 "잘못된 시작을 말한다 표현".

그렇지 않다면 배열을 열거 형 생성자로 전달할 수 있습니까?

+1

아마도 'EnumSet'을 살펴 봐야 할 것입니다. –

답변

2

당신은 new

new Type[]{Type.STEEL, Type.PHYSIC} 
1

이것은 @Ruslan Ostafiychuk로 말했다 사용해야하지만, 나는 그가 무엇을 의미하는지 명확히하고 싶었다. 이러한 세트를 유형 []으로 정의하면 문제가 해결됩니다. 당신이 당신의 코드를 변경해야이하려면 : enumsets의 지점에 터치, 또한

// For the sake of simplicity, all types have the same parameters for now... 
    public enum Type { 

    NORMAL (new Type[] {Type.STEEL, Type.PHYSIC}, new Type[] {Type.FIGHTING, Type.POISON}, new Type[] {Type.GHOST}), 
    FIGHTING (new Type[] {Type.STEEL, Type.PHYSIC}, new Type[] {Type.FIGHTING, Type.POISON}, new Type[] {Type.GHOST}), 
    FLYING (new Type[] {Type.STEEL, Type.PHYSIC}, new Type[] {Type.FIGHTING, Type.POISON}, new Type[] {Type.GHOST}), 
    . 
    . 
    . 
    FAIRY (new Type[] {Type.STEEL, Type.PHYSIC}, new Type[] {Type.FIGHTING, Type.POISON}, new Type[] {Type.GHOST}); 

    private Type [] weak, strong, ineffective; 

    Type (Type [] weak, Type [] strong, Type [] ineffective) { 

     this.weak = weak; 
     this.strong = strong; 
     this.ineffective = ineffective; 

    } 

} 

을, 당신이 당신의 개발을 구성하는 데 도움이 수있는이 사용하는 것 같다. 나는 enumset에 익숙하지 않지만 어떻게 사용할 수 있는지 찔러 볼 것입니다. 예 :

EnumSet<Type> normal = EnumSet.of(Type.NORMAL.weak, type.NORMAL.strong, type.NORMAL.ineffective); 
관련 문제