Hi Alan,

On 5/22/2021 9:41 AM, Alan Bateman wrote:
On Fri, 21 May 2021 02:42:50 GMT, Joe Darcy <da...@openjdk.org> wrote:

Conceptually, AccessbileObject is a sealed class with a protected constructor 
stating

     Constructor: only used by the Java Virtual Machine.

With the language now supporting sealed classes, the AccessbileObject should be 
marked as sealed.

Executable and Field are the subclasses of AccessbileObject in the JDK; as 
Executable has subclasses, it is marked as non-sealed.

Please also review the corresponding CSR:

https://bugs.openjdk.java.net/browse/JDK-8224243
Joe Darcy has updated the pull request incrementally with one additional commit 
since the last revision:

   Update in response to review feedback.
src/java.base/share/classes/java/lang/reflect/AccessibleObject.java line 533:

531:     @Override
532:     public <T extends Annotation> T getAnnotation(Class<T> 
annotationClass) {
533:         throw new IllegalStateException("All subclasses should override this 
method");
I'm not sure that ISE is the most appropriate exception here because there 
isn't an alternative state that would accept the input. UOE might be better.

The new proposal to just seal Executable looks reasonable.

Yeah; I was looking over which exception type to use. On the whole, UOE looks a bit better; I've updated the PR accordingly.

Thanks,

-Joe



Reply via email to