2015-11-04 2 views
1

У меня есть набор переменных, был принят в по мега-метод в древнем унаследованного кода .....как улучшить качество кода (в основном дублей)

public List<type> check (String required, String sales, String report, 
Long passId, Long seatId, String capName, String vCapName, 
String attName, Long vid) { 

     if(required != null) { 
      goodA = method(required); 
      goodB = methodTwo(required); 
      goodC = methodThree(required); 
     } 
     if(sales != null) { 
      goodA = method(sales); 
      goodB = methodTwo(sales); 
      goodC = methodThree(sales); 
     } 
     if(report != null) { 
      goodA = method(report); 
      goodB = methodTwo(report); 
      goodC = methodThree(report); 
     if(passId != null) 
     ... you got the point.... 


} 

Переменные, которые прошли в проверку можно только 1 действительное значение, все остальные переменные станут нулевыми. Например чек ("Да", NULL, NULL, NULL, NULL, NULL ...) или чек (NULL, NULL, NULL, 13212L, NULL, NULL, NULL, NULL)

прямо сейчас Я пытаюсь переписать это во что-то менее повторяющееся и чистое, мне было интересно, может ли кто-нибудь дать некоторые идеи о том, как это сделать.

+1

Есть ли у вас «проверка» только одно значение? – MadProgrammer

+0

, но он имеет разные типы. не просто строка, но и длинная – logger

+0

Есть ли перегрузки 'method' и т. д. для' Long', а также 'String'? –

ответ

1

Как насчет чего-то подобного?

List<Object> items = Lists.newArrayList(required, sales, report, 
capName, vCapName, attName); 

for(Object item : items) { 
    if(item != null){ 
     methodOne(item); 
     methodTwo(item);  
     methodThree(item); 
    } 
} 
+0

описание товара длинный type? – logger

+0

Изменен список на «Объект» вместо «String», который является базовым типом как String, так и Long (и всего остального в Java), чтобы вы могли добавлять все свои поля в один список –

Смежные вопросы