2016-12-16 49 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)); '所以你可以創建一個帶有布爾值的新方法,並且如果使用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(); 
    } 
相關問題