mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-20 15:25:27 +00:00
8010427: Refine Method.isDefault implementation
Reviewed-by: acorn, dlsmith
This commit is contained in:
parent
c9e6a41b99
commit
e91d6c8f4d
@ -522,16 +522,19 @@ public final class Method extends Executable {
|
||||
* Returns {@code true} if this method is a default
|
||||
* method; returns {@code false} otherwise.
|
||||
*
|
||||
* A default method is a non-abstract method, that is, a method
|
||||
* with a body, declared in an interface type.
|
||||
* A default method is a public non-abstract instance method, that
|
||||
* is, a non-static method with a body, declared in an interface
|
||||
* type.
|
||||
*
|
||||
* @return true if and only if this method is a default
|
||||
* method as defined by the Java Language Specification.
|
||||
* @since 1.8
|
||||
*/
|
||||
public boolean isDefault() {
|
||||
return (getModifiers() & Modifier.ABSTRACT) == 0 &&
|
||||
getDeclaringClass().isInterface();
|
||||
// Default methods are public non-abstract instance methods
|
||||
// declared in an interface.
|
||||
return ((getModifiers() & (Modifier.ABSTRACT | Modifier.PUBLIC | Modifier.STATIC)) ==
|
||||
Modifier.PUBLIC) && getDeclaringClass().isInterface();
|
||||
}
|
||||
|
||||
// NOTE that there is no synchronization used here. It is correct
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user