Package io.github.classgraph
Class MethodInfo
java.lang.Object
io.github.classgraph.ClassMemberInfo
io.github.classgraph.MethodInfo
- All Implemented Interfaces:
HasName
,Comparable<MethodInfo>
Holds metadata about methods of a class encountered during a scan. All values are taken directly out of the
classfile for the class.
-
Method Summary
Modifier and TypeMethodDescriptionint
compareTo
(MethodInfo other) Sort in order of class name, method name, then type descriptor.boolean
Test class name, method name and type descriptor for equals().int
The line number of the last non-empty line in the body of this method, or 0 if unknown.int
The line number of the first non-empty line in the body of this method, or 0 if unknown.Get the method modifiers as a String, e.g.getName()
Returns the name of the method.Get the available information on method parameters.String[]
Returns the exceptions thrown by the method, as an array.Returns the list of exceptions thrown by the method, as aClassInfoList
.Returns the parsed type descriptor for the method, which will not include type parameters.Returns the parsed type signature for the method, possibly including type parameters.Returns the parsed type signature for the method, possibly including type parameters.boolean
hasBody()
Returns true if this method has a body (i.e.int
hashCode()
Use hashcode of class name, method name and type descriptor.boolean
hasParameterAnnotation
(Class<? extends Annotation> annotation) Check if this method has a parameter with the annotation.boolean
hasParameterAnnotation
(String annotationName) Check if this method has a parameter with the named annotation.boolean
Returns true if this method is abstract.boolean
isBridge()
Returns true if this method is a bridge method.boolean
Returns true if this method is a constructor.boolean
Returns true if this is a default method (i.e.boolean
isNative()
Returns true if this method is a native method.boolean
isStrict()
Returns true if this method is strict.boolean
Returns true if this method is synchronized.boolean
Returns true if this method is a varargs method.Constructor<?>
Load the class this constructor is associated with, and get theConstructor
reference for this constructor.Load the class this method is associated with, and get theMethod
reference for this method.toString()
Render to string.Render to string, using only simple names for classes.Methods inherited from class io.github.classgraph.ClassMemberInfo
getAnnotationInfo, getAnnotationInfo, getAnnotationInfo, getAnnotationInfoRepeatable, getAnnotationInfoRepeatable, getClassInfo, getClassName, getModifiers, getTypeDescriptorStr, getTypeSignatureOrTypeDescriptorStr, getTypeSignatureStr, hasAnnotation, hasAnnotation, isFinal, isPrivate, isProtected, isPublic, isStatic, isSynthetic
-
Method Details
-
getName
Returns the name of the method. Note that constructors are named"<init>"
, and private static class initializer blocks are named"<clinit>"
.- Specified by:
getName
in interfaceHasName
- Overrides:
getName
in classClassMemberInfo
- Returns:
- The name of the method.
-
getModifiersStr
Get the method modifiers as a String, e.g. "public static final". For the modifier bits, callClassMemberInfo.getModifiers()
.- Specified by:
getModifiersStr
in classClassMemberInfo
- Returns:
- The modifiers for the method, as a String.
-
getTypeDescriptor
Returns the parsed type descriptor for the method, which will not include type parameters. If you need generic type parameters, callgetTypeSignature()
instead.- Specified by:
getTypeDescriptor
in classClassMemberInfo
- Returns:
- The parsed type descriptor for the method.
-
getTypeSignature
Returns the parsed type signature for the method, possibly including type parameters. If this returns null, indicating that no type signature information is available for this method, callgetTypeDescriptor()
instead.- Specified by:
getTypeSignature
in classClassMemberInfo
- Returns:
- The parsed type signature for the method, or null if not available.
- Throws:
IllegalArgumentException
- if the method type signature cannot be parsed (this should only be thrown in the case of classfile corruption, or a compiler bug that causes an invalid type signature to be written to the classfile).
-
getTypeSignatureOrTypeDescriptor
Returns the parsed type signature for the method, possibly including type parameters. If the type signature string is null, indicating that no type signature information is available for this method, returns the parsed type descriptor instead.- Specified by:
getTypeSignatureOrTypeDescriptor
in classClassMemberInfo
- Returns:
- The parsed type signature for the method, or if not available, the parsed type descriptor for the method.
-
getThrownExceptions
Returns the list of exceptions thrown by the method, as aClassInfoList
.- Returns:
- The list of exceptions thrown by the method, as a
ClassInfoList
(the list may be empty).
-
getThrownExceptionNames
Returns the exceptions thrown by the method, as an array.- Returns:
- The exceptions thrown by the method, as an array (the array may be empty).
-
isConstructor
public boolean isConstructor()Returns true if this method is a constructor. Constructors have the method name"<init>"
. This returns false for private static class initializer blocks, which are named"<clinit>"
.- Returns:
- True if this method is a constructor.
-
isSynchronized
public boolean isSynchronized()Returns true if this method is synchronized.- Returns:
- True if this method is synchronized.
-
isBridge
public boolean isBridge()Returns true if this method is a bridge method.- Returns:
- True if this is a bridge method.
-
isVarArgs
public boolean isVarArgs()Returns true if this method is a varargs method.- Returns:
- True if this is a varargs method.
-
isNative
public boolean isNative()Returns true if this method is a native method.- Returns:
- True if this method is native.
-
isAbstract
public boolean isAbstract()Returns true if this method is abstract.- Returns:
- True if this method is abstract.
-
isStrict
public boolean isStrict()Returns true if this method is strict.- Returns:
- True if this method is strict.
-
hasBody
public boolean hasBody()Returns true if this method has a body (i.e. has an implementation in the containing class).- Returns:
- True if this method has a body.
-
getMinLineNum
public int getMinLineNum()The line number of the first non-empty line in the body of this method, or 0 if unknown.- Returns:
- The line number of the first non-empty line in the body of this method, or 0 if unknown.
-
getMaxLineNum
public int getMaxLineNum()The line number of the last non-empty line in the body of this method, or 0 if unknown.- Returns:
- The line number of the last non-empty line in the body of this method, or 0 if unknown.
-
isDefault
public boolean isDefault()Returns true if this is a default method (i.e. if this is a method in an interface and the method has a body).- Returns:
- True if this is a default method.
-
getParameterInfo
Get the available information on method parameters.- Returns:
- The
MethodParameterInfo
objects for the method parameters, one per parameter.
-
hasParameterAnnotation
Check if this method has a parameter with the annotation.- Parameters:
annotation
- The method parameter annotation.- Returns:
- true if this method has a parameter with the annotation.
-
hasParameterAnnotation
Check if this method has a parameter with the named annotation.- Parameters:
annotationName
- The name of a method parameter annotation.- Returns:
- true if this method has a parameter with the named annotation.
-
loadClassAndGetMethod
Load the class this method is associated with, and get theMethod
reference for this method. Only call this ifisConstructor()
returns false, otherwise anIllegalArgumentException
will be thrown. Instead callloadClassAndGetConstructor()
for constructors.- Returns:
- The
Method
reference for this method. - Throws:
IllegalArgumentException
- if the method does not exist, or if the method is a constructor.
-
loadClassAndGetConstructor
Load the class this constructor is associated with, and get theConstructor
reference for this constructor. Only call this ifisConstructor()
returns true, otherwise anIllegalArgumentException
will be thrown. Instead callloadClassAndGetMethod()
for non-method constructors.- Returns:
- The
Constructor
reference for this constructor. - Throws:
IllegalArgumentException
- if the constructor does not exist, or if the method is not a constructor.
-
equals
Test class name, method name and type descriptor for equals(). -
hashCode
public int hashCode()Use hashcode of class name, method name and type descriptor. -
compareTo
Sort in order of class name, method name, then type descriptor.- Specified by:
compareTo
in interfaceComparable<MethodInfo>
- Parameters:
other
- the otherMethodInfo
to compare.- Returns:
- the result of the comparison.
-
toStringWithSimpleNames
Render to string, using only simple names for classes.- Returns:
- the string representation, using simple names for classes.
-
toString
Render to string.
-