This question現在已經超過3年,專門針對Java 8,接受的答案也引用了Java SE 8 Final Specification。是否有可能在Java 9中註釋lambda表達式?
如果關於這個問題的某些事情會在Java 9中發生變化,我會感興趣的:有什麼辦法來註釋類似於註釋相應的匿名類的lambda表達式嗎?
實施例:
譯註:
Consumer<String> consumer = new @MyTypeAnnotation("Hello ") Consumer<String>() {
@Override
public void accept(String str) {
System.out.println(str);
}
};
註解一個蘭巴表達,目前沒有在Java中5-8:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE_USE)
public @interface MyTypeAnnotation {
public String value();
}
工作匿名類的註釋
Consumer<String> myAnnotatedConsumer = @MyTypeAnnotation("Hello") (p -> System.out.println(p));
這兩個構造之間的一個重要區別是匿名類仍然是一個類的聲明。lambda表達式不會創建新類(或者不一定,如果它是實現細節)。我有這樣的印象:只有*聲明才允許註釋*。 *表達式*允許註釋嗎? – Lii