작은 프로젝트에서 나는 막혔다. 사용자가 "xp Speed"명령을 입력하면 명령 처리기 클래스가 속도 인스턴스의 XP 값을 원한다는 것을 알게됩니다. 이 경우 Skill.Speed.currentXP의 값을 다시 사용자에게 반환해야합니다. 프로그램의사용자가 인스턴스 이름을 문자열로 입력 할 때 인스턴스 메서드 호출
작은 부분 : 이제
//Example Instance initialization there is over 40 of these
Skill Speed = (new SkillSpeed(Skills.SKILL_SPEED,Skills.SKILL_SPEED_MODIFIER));
//Constructor for skill class
public Skill(String skillName, double modifier) {
this.name = skillName;
this.minLevel = Skills.MIN_SKILL_LEVEL;
this.Modifier = 1f;
this.currentLevel = (int)calculateLevel();
this.currentXP = 1;
this.leaderboard = getCurrentLeaderboard();
this.ID = getNextID();
}
, 내가이 작업을 수행 할 수있는 한 가지 방법을 프로그래머. 대/소문자 값이 입력 된 문자열 인 switch 문을 사용합니다. 그러나 하나의 switch 문에 40 개 이상의 사례가 있으면 피할 수 있어야합니다. 내가 가진 다른 이론은 모든 현재 인스턴스의 배열을 생성 한 다음 그 목록을 반복하면서 사용자가 입력 한 문자열이 해당 인스턴스의 이름과 동일한 지 확인한 다음 인스턴스 자체를 반환하는 것입니다.
스킬을 반환하는 메소드를 작성하는 모든 초기화 인스턴스
의 배열을 만들기 : 그래서 여기에 내가 도움이 필요 무엇
//method inside another classs that attempts to return the appropriate skill Instance public Skill getSkillFromName(String Name) { for(int i = 0; i < Skill.SkillArray.length; i++) { final String SkillName = Skill.SkillArray[i].getName(); if(SkillName.equalsIgnoreCase(Name)) { return Skill.SkillArray[i]; } } return null; }
: 이것은 내가 생각 해낸 것입니다. "InsertRandomInstanceDependingOnUserInputHere".currentXP
getSkillFromName() 메서드에 표시되는 문제 수정
아마도이 작업을 훨씬 쉽게 수행 할 수있는 방법을 간과 했으므로 도움이 될 것입니다. 도움을
감사합니다,
BigDaveNz
내 제안 : 스택 교환에서 [코드 검토] (http://codereview.stackexchange.com/)를 사용하여 코드를 검토하십시오. 숙련 된 Java 프로그래머에게는 코드에서 모범 사례를 사용하지 않아도 읽기가 어렵습니다. 또한 코드 검토에 더 많은 코드 (전체 클래스)를 게시 할 수 있습니다. –