2012-10-09 20 views
1

當我踢了我的Maven構建,它失敗,此錯誤與Maven的Java格式字符串錯誤構建

「轉換= S,旗幟=#」

在下面的測試。

public class Test { 

    public static void main(String[] argv) { 
     String a = String.format("%1$#" + (250 + 1) + "s", ""); 
     System.out.println("a = " + a); 
    } 
} 

請指教。

謝謝。

回答

3

所以這是真的都源於一個電話,看起來像這樣:

String.format("%1$#251s", ""); 

如果你看一下Formatter文檔,此格式字符串時,要求用251寬度的字符串轉換(s)和國旗#

進行字符串轉換狀態的文檔:

如果「#」標誌,並給出了參數不是Formattable,則FormatFlagsConversionMismatchException將被拋出。

現在java.lang.String沒有執行Formattable - 因此拋出異常,完全如文檔所述。

你剛纔做了什麼期望這樣做?

+0

我不知道它做了什麼。我修改了O&M中的代碼,然後看到這個特定的測試失敗了。我不明白它應該做什麼。謝謝,喬恩。 –

+0

以前這個單元測試成功了。不過,我剛剛升級到Java 1.7。您列出的約束是否爲1.7? –

+0

@Kevin:並不是我所知道的,儘管之前它可能沒有被完全驗證。 –