2016-11-28 3 views
0

Ich Deserialisierung ein Objekt, das eine Variable mit dem Namen der öffentlichen hat, die eine primitive Boolean ist. intelliJ denkt weiter an die Öffentlichkeit ist der Modifikator. Wie deaktiviere ich Java daran, dass es sich um einen Modifikator handelt?So benennen Sie eine Java-Variable "public"

+3

* "Wie deaktiviere ich Java daran, dass es ein Modifikator ist?" * Sie können keinen anderen Namen verwenden. – Tom

+1

Sie können eine Variable 'public' nicht benennen. Genauso, wie Sie eine Variable 'class' oder' true' nicht benennen können. http://www.jwrider.com/riderist/java/javaidrs.htm – CollinD

+0

Sie nicht! Es ist ein Schlüsselwort, das nicht erlaubt ist, einen Variablennamen zu verwenden. Stattdessen müssen Sie eine Variable erstellen und sie mit Anmerkungen versehen, damit Gson das json-Feld "public" zuordnen kann. http://www.javacreed.com/gson-annotations-example/ – luk2302

Antwort

3

Sie können nicht. Das Beste, was Sie tun können, ist, den Serialisierungsprozess selbst zu stören und den Variablennamen zu ändern (z. B. mit @SerializedName). Wenn Sie das nicht können, stecken Sie fest.

Beachten Sie, dass dies nur für Java-Quellcode gilt. Kompilierte .class-Dateien können Variablen, Klassennamen usw. enthalten, die mit Java-Schlüsselwörtern identisch sind. Einige Code-Verschleierer machen sich das zunutze, um es sehr schwierig zu machen, in legales Java zu dekompilieren.

3

Verwenden Sie @SerializedName("public") Annotation für eine solche Variable.