I am working on a JVM-based programming language and I use Byte Buddy for the code generator. The language is somewhat similar to Java but typically uses annotations where Java would use keywords. Some example annotations are public, private, extends, override, singleton or inject.
Unlike the Java Language Specification, the Java Virtual Machine Specification imposes very few restrictions on class names, and names like extends or public are perfectly valid from JVM-perspective.
However, when I try to generate annotation classes with a name that happens to be a Java keyword I get an IllegalStateException "Illegal type name" from Byte Buddy's InstrumentedType class.
How can I circumvent the validation that is specific to the Java language and use more lenient validation rules that follow the Java Virtual Machine Specification instead?
You can simply disable validation:
new ByteBuddy().with(TypeValidation.DISABLED);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With