私は、コンソールの入力メニューを作成する方法を書いています。このメニューは、ユーザーが選択できる複数のオプションを表示し、ユーザーが選択したオプションを返します。このメソッドはオブジェクトの配列を受け取り、toString()
メソッドを呼び出すことでオブジェクトの配列を表示します。問題は、これらのオブジェクトのtoString()
メソッドを呼びたくない場合がありますが、おそらくgetName()
メソッドです。したがって、メソッド参照を渡すことができるようにしたいと思います。これはオブジェクトに対して呼び出すことができ、String
を返します。 それから私はf.e。人の配列と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