我有以下代碼類參數丟失的最終引用
public class MyClass {
public MyClass (String myString){
myFlag=myString
}
ProcessBuilder pb = new ProcessBuilder("Path to my application", "variousflags", myFlag)
Process p = pb.start();
}
當我運行
myClass("worddocument.doc")
PB不啓動。在調試MyClass時,我注意到:
myFlag ="worddocument.doc
沒有最終報價。要在ProcessBuilder中使用標誌,它必須在引號內。 我必須包括這給了我NetBeans中的錯誤消息「沒有結束的字符串字面」行
myFlag= myFlag.concat(""");
。如何擺脫整齊的錯誤,甚至更好,我怎樣才能得到最後的報價呢?因爲你的IDE會認爲你在第二個引號將關閉字符串 感謝
@MikaelF你是對固定用「\」,而不是」 「」」。但我認爲有人可以告訴我如何不放鬆最終的「我不明白爲什麼它消失了,我有其他的字符串標誌在進程建設者,保留他們的最後引號 – Guigui
'stringFlag'和' myFlag'的值相同嗎?如果是這樣,是否還有其他操作可能會改變你的'String'?由於'String'是不可變的,你可以檢查你的ProcessBuilder是否仍然使用與它相同的'String'實例在兩個衝突的字符串中使用'=='運算符,這樣,在調試檢查運行的時候,你會看到它是否被修改過了(顯然是這樣) – MikaelF
@MikaelF道歉,stringFlag = myFlag,那是另一個編輯錯誤,現在只有一個變量:myFlag,現在更正了 – Guigui