Bazı listeler tamsayılar içeren ve bazı listelerde çiftler içeren yer ayrılmış sayı listelerini ayrıştırmam gerektiğini varsayalım. Tekrarlamayı azaltmak için aşağıdaki işlevleri genelleştirmek için iyi bir yol ne olurdu? Bunun Generics için iyi bir kullanım örneği olabileceğini mi düşünüyordum? Eğer bir String
alır ve istenilen tür döndüren fonksiyonu (örn java.util.function.Function
veya com.google.common.base.Function
) çeşit varsaJava: DRYness'i İyileştirmek İçin Dize Ayrıştırma İçin Generics'i Kullanma
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;
}
Bunu denediğinizde, işlevin bir 'List' yerine bir 'List ' döndürdüğünü söyleyen bir hata alıyorum. Orada bir oyuncuya mı ihtiyacım var? –
@ evan058 bunu nasıl adlandırıyorsunuz? T döndüren bir işlevi geçmeniz gerekir, ancak T Nesne ise List
alırsınız IntelliJ kullanıyorum ve IDE bu hatayı atıyor. Fonksiyonu daha yeni tanımladım ve diyor ki: Uyumsuz Türler: Gerekli: 'List'; Bulunanlar ' –