2016-12-28 8 views
1

私はAndroidアプリでProject Lombokを統合しています。私はvalとvarを使うことに問題がある。私はそれが(任意のタイプの)値を割り当てると、タイプvarまたはvalのフィールドに互換性のないタイプエラーが発生します。ロンボクのvalとvarはAndroidで動作しません

private final val example = new ArrayList<String>(); 

private var eg2; 
eg2=getRandomString(); 

誰もAndroidでvarとvalを試しましたか?どんな助けもありがとう。

私はLombokバージョン1.16.12、Android Studio 2.3 Beta 1、Androidプラグインバージョン2.2.3、Gradle 3.2.1を使用しています。

+1

Gradleを使用するだけでIntelliJなしでコンパイルできますか? IntelliJでプロジェクトの注釈処理を有効にしましたか? (設定 - >コンパイラ - >注釈プロセッサ - >注釈処理を有効にする) https://plugins.jetbrains.com/idea/plugin/6317-lombok-pluginを使用していますか? –

+0

いいえ、Gradleだけでコンパイルしません。はい、注釈処理を有効にして、lombokプラグインをインストールしました。他のすべては、@データ、@値、@ゲッターなどの魅力のように動作します。それはvalとvarの問題です。 – NullPointer

+0

あなたはそれがすべてセットアップされているようです。 –

答えて

2

@valおよび@varは、ローカルの変数(メソッドまたはブロック内の変数)でのみ機能します。

ので、次は動作します。また、手動で有効にする必要があります

public class BadValExample { 
    private val example = new ArrayList<String>(); 
} 

@var

public class ValExample { 
    public String example() { 
    val example = new ArrayList<String>(); 
    example.add("Hello, World!"); 
    val foo = example.get(0); 
    return foo.toLowerCase(); 
    } 
} 

しかし、それはクラスのメンバ(これはビルドされません)で動作しません。これを行うには、コンテンツにを追加します。

lombok.var.flagUsage = ALLOW 
+0

私は参照してください。どのようにvarについて? varを使う正しい方法は何ですか? – NullPointer

+0

実際には、IntelliJプラグインhttps://plugins.jetbrains.com/idea/plugin/6317-lombok-pluginでサポートされている@varが表示されません。サポートを追加するGitHubの問題はhttps://github.com/mplushnikov/lombok-intellij-plugin/issues/322です。その場合、Gradleを使用してビルドすると、varが動作する可能性があります。 –

+0

クール!助けてくれてありがとう! – NullPointer