Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
...or short for
$T.$L
馃槈This PR replaces/deprecates #443 - tests from there need to be merged into this PR.
$R for References
When generating code, you may point to already compiled elements like methods, fields
and especially the
enum
constant fields. Enter$R
:That produces the fully-qualified member name:
A more complex example with ex- and implicit
MemberRef
creations for methods, fields, enumconstants:
That generates the following
.java
file, complete with the necessaryimport
s:$R
lets you reference static members:TimeUnit.MINUTES
aboveString.CASE_INSENSITIVE_ORDER
Class.forName(String)
References to instance members are also supported. Here, it's up to you providing some object
as a call target. You can use any literal including
"this"
,"super"
,TypeName
s andeven
MemberRef
erences like can be seen withTimeUnit.SECONDS
in the example above.The
MemberRef
API allows optional type arguments as parameters. Those can be used to specifythe generic return type of a method:
Which yields: