Lombok.valあなたは、実際のタイプを書く代わりに のローカル変数宣言の種類としてLombok.valは実際にどのように機能しますか?
使用valをすることができます。これを行うと、型は初期化式から推論されます。ローカル変数も最終的に作成されます。あなたが、私はこれが実際にどのように機能するかにいくつかの研究を行うことを試みましたが、があるようには思えない
val example = new ArrayList<String>();
を書くことができます
ので、代わりの
final ArrayList<String> example = new ArrayList<String>();
膨大な量の情報。 the github pageを見ると、val
が注釈タイプであることがわかります。実際の注釈ではなく、注釈が使用されます。
このように注釈の種類を使用することさえできないことさえありましたが、テストする際に次のコードが実際に有効です。しかし、私はまだあなたがこのようにタイプを使用したいと思う理由はまだ分かりません。
public class Main
{
public @interface Foo { }
public static void main(String... args)
{
Foo bar;
System.out.println("End");
}
}
彼らは注釈がない場合は、これらの用途ロンボクプロセスをどのように
が、注釈種類?私の(明らかに間違って)理解するには、次の構文は、より多くのようになります。ロンボクが動作するためには
@Val foo = new ArrayList<String>();
(私は注釈の制約が上記の有効な構文ではありません意味知っています)
ありがとうございます!素晴らしい図書館に感謝します。あなたは交換を行うギブスの場所に私を向けることができますか?興味ある。 – Michael
Eclipseおよびecjについては、https://github.com/rzwitserloot/lombok/blob/master/src/eclipseAgent/lombok/eclipse/agent/PatchVal.javaおよびhttps://github.com/rzwitserloot/lombok/blobを参照してください。 /master/src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java、javacの場合は、https://github.com/rzwitserloot/lombok/blob/master/src/core/lombok/javac/handlers/HandleVal.javaを参照してください。 –