3

私の Android アプリでは、parceler ライブラリと lombok ライブラリを使用しています。

これらは私のクラスの注釈です:

@Table
@ToString
@Getter
@NoArgsConstructor
@Parcel
public class MyClass {

ただし、gradle のビルド中に、Parceler はデフォルトの空のコンストラクターがないと文句を言います。これは、@NoArgsConstructor注釈が認識されず、これら 2 つが単に連携しないことを意味するのでしょうか? たとえば、SugarORM には問題がないからです。それとも、何かが足りないのですか?

4

3 に答える 3

4

これは、Lombok がクラスにコードを追加する方法に入ります。Lombok は、Java アノテーション プロセッサの既知のトリックを使用して、クラスにコードを追加します。この追加されたコードは、注釈プロセッサのラウンド中にパーセラーに表示されず、追加された引数のないコンストラクターがパーセラーに認識されなくなります。

引数なしのコンストラクターを手動で追加し、既存のコンストラクターに注釈を付ける@ParcelConstructor(1 つあると仮定します) か、注釈付きの Lombok フォークHrisey@Parcelableの使用を検討することをお勧めします。

最近、これに関する問題/質問がありました: https://github.com/johncarl81/parceler/issues/177

于 2016-05-31T23:19:10.783 に答える