2016-12-16 1 views
-1

함수 프로그래밍을 사용하여이 두 메서드를 병합해야하지만 익숙하지 않습니다. 어떻게해야합니까? 무서운 웜뱃 말했다Java에서 함수형 프로그래밍을 사용하여이 두 메서드를 함께 병합하는 방법

private String getCsvHeader(Object obj) { 
    Field[] fields = obj.getClass().getFields(); 
    StringBuilder sb = new StringBuilder(); 
    String prefix = ""; 

    for (Field field : fields) { 
     sb.append(prefix).append(field.getName()); 
     prefix = ","; 
    } 
    return sb.toString(); 
} 

private String getCsvString(Object obj) throws IllegalAccessException { 

    Field[] fields = obj.getClass().getFields(); 
    StringBuilder sb = new StringBuilder(); 

    String prefix = ""; 
    for (Field field : fields) { 
     sb.append(prefix).append(field.get(obj)); 
     prefix = ","; 
    } 
    return sb.toString(); 
} 
+1

그래서 다른 유일한 것은'sb.append (접두사)으로 .Append (field.get (OBJ))이다; '그래서 당신은 boolean으로 새로운 메소드를 생성 할 수 있고 getString이라면 다른 방법으로 다른 방법으로 이것을 수행 할 수 있습니다. –

답변

0

처럼, 그것은 그렇게 될 것입니다 :

private String getCsv(Object obj, boolean isHeader) throws IllegalAccessException 
    { 
     Field[] fields = obj.getClass().getFields(); 
     StringBuilder sb = new StringBuilder(); 

     String prefix = ""; 
     for (Field field : fields) 
     { 
      if (isHeader) 
      { 
       sb.append(prefix).append(field.getName()); 
      } 
      else 
      { 
       sb.append(prefix).append(field.get(obj)); 
      } 
      prefix = ","; 
     } 
     return sb.toString(); 
    } 
관련 문제