kompakt koduna iyi yolu şuna benzer:Temiz kodu - Ben koduna sahip Java
Nasıl bu kod tekrarını önleyebilirsiniz
for(int i=0; i < a; i++){
List<Integer> list = elementA.get(i);
SomeClass rg = new SomeClass(list, a, methodA(i));
int result = rg.generate();
var+=methodA2(i, result);
}
for(int i=0; i < b; i++){
List<Integer> list = elementB.get(i);
SomeClass rg = new SomeClass(list, b, methodB(i));
int result = rg.generate();
var+=methodB2(i, result);
}
? Bunu yapan işlevi yaratabilirim, ancak bu farklı yöntemlerle ne yapmalıyım?
interface IntFunction<A> { A apply (int i); }
m(elementA, a, new IntFunction<A>() { public A apply(int i) { methodA(i); } });
Ve yöntemi gibi görünecektir::
private void m(Collection<List<Integer>> element, int a, IntFunction<A> f) {
for(int i=0; i < a; i++){
List<Integer> list = element.get(i);
SomeClass rg = new SomeClass(list, a, f.apply(i));
int result = rg.generate();
}
}
(I Eğer bir arabirim oluşturabilir Java < 8 ile
Bu elementa ve elementB, Yöntemia ait() ve Yöntemib() beyanlarına bağlıdır ve methodA2() ve methodB2 ait(). Sınıfların get() yöntemleri ortak bir arabirim veya üst sınıf tarafından tanımlanmışsa, bu yardımcı olur. Yöntemlere gelince, onlar hakkında daha fazla bilgi sahibi olmalıyız - bir şekilde get() ile sınıflara karşılık mı geliyorlar? – arcy