2017-08-23 27 views
0

我如何配置的IntelliJ IDE不將在下面的類成員字段,以便嚴格:錯誤而宣告字`public`作爲一個字符串變量的IntelliJ

String public; 
String metaClass; 

目前,它顯示有關的錯誤String public的成員。

這是我想要的命名,因爲我必須遵守JSON合約。

+0

你不應該鏈接外部的圖像可能會丟失 – rakwaht

+0

我編輯的問題內容,​​以更好地反映問題的實質。將來,儘可能具體地解決問題和推理。 –

+0

作爲提示,嘗試將有問題的成員重命名爲編譯器名稱可接受的其他成員。您可以使用註釋來告訴您的JSON序列化框架JSON格式的字段名稱,因此您不需要在相應的Java類中具有完全相同的命名。 –

回答

2

我想你會問,爲什麼這個代碼...

String public 

...不能編譯。

或者換句話說:「爲什麼IntelliJ不允許這個代碼?」。

單詞public在Java中不是有效的變量名,所以沒有編譯器(不管是由IntelliJ還是由其他任何東西託管)都不允許該代碼。

docs

的命名變量的規則和約定可以概括如下: ... 也請記住,您選擇的名稱不能是關鍵字或保留字。

以下是keywords and reserved words的完整列表。

在你的問題中,你寫了「這是我想要的格式,因爲json對象」,我認爲你的意思是說你有一個名爲「public」的屬性的JSON,並且你想將它映射到Java類有一個名爲「public」的屬性,如果是這樣的話,那麼你需要在將JSON轉換成Java類時轉換JSON,這可能受到你使用的任何JSON庫的支持,例如Jackson提供了@JsonProperty@JsonAlias註釋此...此允許JSON:{"public": "true"}將deserialised與該成員的類:@JsonAlias({ "public" }) public String publicScope

+0

對不起語法好友,但這是你在這個評論中說的確切問題。謝謝! JSON數組如何,我在反序列化這些東西時遇到了問題,我正在使用Jackson Json。我總是有一個錯誤,意思是「START_OF_ARRAY」,我會怎樣做才能修復它?謝謝! –

+0

很高興我能幫到你。回顧你的後續問題,我認爲這可能已經有一個答案SO([this](https://stackoverflow.com/questions/27154631/json-mapping-exception-can-not-deserialize-instance-out-of- start-array-token)或許?)。如果你在SO上找不到現有的答案,那麼我認爲你應該用[MCVE](https://stackoverflow.com/help/mcve)提出一個新問題。至少你應該包括例子JSON,你的模型類和你的反序列化代碼......如果沒有這些細節,診斷這個問題是非常困難的。 – glytching