一部のリストに整数が含まれ、一部のリストに2重が含まれている場合、空白で区切られた数字のリストを解析する必要があると仮定します。繰り返しを減らすために次の関数を一般化する良い方法は何でしょうか?私はこれがジェネリックスの良いユースケースかもしれないと思っていましたか?あなたがString
を取り、希望のタイプを返す関数(例えばjava.util.function.Function
またはcom.google.common.base.Function
)のいくつかの並べ替えを持っている場合Java:文字列解析にジェネリックスを使用してDRYnessを改善する
public static ArrayList<Integer> stringToIntList(String str)
{
String[] strs = str.split("\\s");
ArrayList<Integer> output = new ArrayList<Integer>();
for (String val : strs)
{
output.add(Integer.parseInt(val));
}
return output;
}
public static ArrayList<Double> stringToDoubleList(String str)
{
String[] strs = str.split("\\s");
ArrayList<Double> output = new ArrayList<Double>();
for (String val : strs)
{
output.add(Double.parseDouble(val));
}
return output;
}
これを試してみると、関数が 'List'ではなく 'List 'を返すというエラーが表示されます。そこにキャストが必要なのですか? –
@ evan058どのように呼びますか? Tを返す関数を渡す必要がありますが、TがObjectの場合はリストを取得します
IntelliJを使用していて、IDEがそのエラーを投げています。私は関数を定義したばかりです:互換性のない型:必須: 'List'; 'List 'が見つかりました –