I created a constructor with Javassist which has no real method
CtConstructor c = CtNewConstructor.make ( argTypes, null, newClass );
When I’m trying to put out the signature of this class
c.getSignature();
I get
public Echo ()V
I’m confused what “V” means? I expected either public Echo (); or something similar…
The JVM uses a compact way of storing method signatures, of which constructors are considered a special case.
For your example:
()indicates a method taking no argumentsVindicates that it returns nothingThe other parts of the scheme are:
B– byteC– charD– doubleF– floatI– intJ– longS– shortV– voidZ– boolean[– array of the thing following the bracketL[class name];– instance of this class, with dots becoming slashes([args])[return type] – method signatureFor example:
would become
See the spec at Sun^H^H^HOracle’s web site