vvakame/JsonPullParser

入れ子のクラスと同名のクラスが同一パッケージに存在する場合ビルドエラーになる

Closed this issue · 2 comments

keiji commented

#6 に関連して

現象再現用のクラス

Helloクラス

package io.keiji.jppsample;

import net.vvakame.util.jsonpullparser.annotation.JsonKey;
import net.vvakame.util.jsonpullparser.annotation.JsonModel;

@JsonModel
public class Hello {

    @JsonKey
    String id;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

入れ子のクラスHelloをもつEditorクラス

package io.keiji.jppsample;

import net.vvakame.util.jsonpullparser.annotation.JsonKey;
import net.vvakame.util.jsonpullparser.annotation.JsonModel;

@JsonModel
public class Editor {

    @JsonKey
    Hello hello;

    public Hello getHello() {
        return hello;
    }

    public void setHello(Hello hello) {
        this.hello = hello;
    }

    @JsonModel
    public static class Hello {

        @JsonKey
        int id;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }
    }

}

ビルド結果

Error:exception thrown! Attempt to recreate a file for type io.keiji.jppsample.HelloGen
1 warning
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED

入れ子のクラスであっても、パッケージ下にHelloGenクラスとして生成されているのが原因?

既知の問題で、直感的な回避方法が思いつかないのでクラス名のほうを変えてください。というスタンスです。

keiji commented

👍