changeset 6433:4d3c05cc21d5

8006895: Clarify that FunctionalInferface is only informative Reviewed-by: briangoetz
author darcy
date Thu, 24 Jan 2013 16:54:11 -0800
parents b3f0e0c79bcc
children 4c9fcb5cbc07
files src/share/classes/java/lang/FunctionalInterface.java
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/lang/FunctionalInterface.java	Thu Jan 24 18:21:09 2013 +0000
+++ b/src/share/classes/java/lang/FunctionalInterface.java	Thu Jan 24 16:54:11 2013 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,9 +28,9 @@
 import java.lang.annotation.*;
 
 /**
- * Indicates that an interface type declaration is intended to be a
- * <i>functional interface</i> as defined by the Java Language
- * Specification.
+ * An informative annotation type used to indicate that an interface
+ * type declaration is intended to be a <i>functional interface</i> as
+ * defined by the Java Language Specification.
  *
  * Conceptually, a functional interface has exactly one abstract
  * method.  Since {@linkplain java.lang.reflect.Method#isDefault()
@@ -52,6 +52,11 @@
  * <li> The annotated type satisfies the requirements of a functional interface.
  * </ul>
  *
+ * <p>However, the compiler will treat any interface meeting the
+ * definition of a functional interface as a functional interface
+ * regardless of whether or not a {@code FunctionalInterface}
+ * annotation is present on the interface declaration.
+ *
  * @jls 4.3.2. The Class Object
  * @jls 9.8 Functional Interfaces
  * @jls 9.4.3 Interface Method Body