2014-12-03 106 views
0

我的java源代碼中有以下幾行代碼。我不應該使用「toString」方法。你能否爲它建議任何適當的方法。toString方法的適當替換函數

public void logDebug(String eventType, String info) { 
     String[] source = getSourceAndLineNumber(); 
     StringBuffer log= new StringBuffer(eventType).append(":::").append(source[0]); 
     log.append(":::").append(source[1]).append(":::\n").append(info).append("\n"); 
     logInfo.log(Level.INFO, log.toString()); 
    } 
+0

你爲什麼不? (我也推薦一個'StringBuilder',但這需要根據需要) – MadProgrammer 2014-12-03 07:39:45

+0

爲什麼你不能使用? – 2014-12-03 07:40:04

+0

你可以使用'StringBuffer#getChars'將內容複製到另一個'char'數組,但是你可能需要使用'new String(charArray)'來創建一些有用的東西,這看起來像很多工作避免'toString'。你可以使用'StringBuffer#subSequence',它返回一個'CharSequence',但它只是相同的東西... – MadProgrammer 2014-12-03 07:44:49

回答

0

您可以使用logInfo.log(Level.INFO, log + "")。雖然這將隱含地稱爲toString()方法。

+0

這是一個黑客。 [看看字符串連接是如何工作的](http://codeinventions.blogspot.com/2014/08/compiler-version-string-concatenation.html) – 2014-12-03 07:44:48

+0

不確定你的意思。正確的方法是使用'toString()'方法,但這是不允許的。這是在不顯式調用'toString()'方法的情況下達到相同結果的一種方法。 – Petter 2014-12-03 07:48:19

+0

給我的指導是不使用toString()方法。代碼建議工作。謝謝。 – user3868730 2014-12-03 10:49:08