나는 사용자가 선택할 수있는 여러 옵션을 표시하고 사용자가 선택한 옵션을 반환하는 콘솔에 대한 입력 메뉴를 만드는 메서드를 작성했습니다. 이 메서드는 객체 배열을 허용하고 toString()
메서드를 호출하여 해당 객체를 표시합니다. 문제는 어떤 경우에는 이러한 객체에 대해 toString()
메서드를 호출하고 싶지 않지만 getName()
메서드 일 수 있습니다. 따라서 객체에 대해 호출 할 수있는 메소드 참조를 전달할 수있게하고 String
을 반환합니다. 그럼 내가 할 수있어. 사람의 배열을 전달하고 getFullName()
메소드를 전달하십시오. 그 사람은 콘솔에 성을 표시 할 것이지만 나는 여전히 그 사람의 물건을 돌려 주겠다. 나는 그 사람의 물건을 그 이름으로 찾을 필요가 없다. 여기에 방법에 대한 내 현재 코드가 입니다 :해당 클래스의 개체에 대한 메서드 참조뿐만 아니라 개체를 제공하는 방법?
/**
* Prints the provided question and the options to choose from
*
* @param question
* the question to ask the user
* @param options
* list of objects the user can choose from
* @return chosen object
*/
public Object getMultipleChoiceResult(String question, List<?> options) {
int result = 0;
while (result > options.size() | result < 1) {
System.out.println(question);
for (int i = 1; i <= options.size(); i++) {
System.out.println("(" + i + ") " + options.get(i - 1).toString());
}
try{
result = scanner.nextInt();
} catch (InputMismatchException e) {
System.err.println("wrong input");
scanner.next();
}
}
return options.get(result - 1);
}
당신은 내가 찾고 있어요 그리고이 가능 이해합니까?
인터페이스를 사용하려는 것처럼 들립니다. –
예, 그렇지만이 인터페이스를 구현하는 옵션으로 개체를 전달할 수만 있습니다. 클래스에 의존성이 정의되어있는 옵션으로 전달하고자하는 객체가 있으므로 편집 할 수 없습니다. – ThunderGh0st