Making Java Class non-final via Reflection API

java, reflection

Solution

You can re-write a class file using a library like ASM.

There may be no point changing the `final` status of a class at runtime as it needs to be non-final at compile time to compile a sub-class.

Problem

I have a Java class similar to the following one: ``` public final class Node { public Node() {} } ``` I have learned already how to change change the accessibility of 'final' fields via the reflection API, but is this also possible for classes? Can I turn a final class into a non-final class at runtime?

Original source