Interface JTypeParameterSymbol

All Superinterfaces:
AnnotableSymbol, JAccessibleElementSymbol, JElementSymbol, JTypeDeclSymbol

public interface JTypeParameterSymbol extends JTypeDeclSymbol
Represents the declaration of a type variable, ie a type parameter. Type variables are reference types, but not class or interface types. They're also not declared with the same node. For those reasons this type of references is distinct from JClassSymbol.
Since:
7.0.0
  • Method Details

    • getDeclaringSymbol

      JTypeParameterOwnerSymbol getDeclaringSymbol()
      Returns the JClassSymbol or JMethodSymbol which declared this type parameter.
    • getTypeMirror

      JTypeVar getTypeMirror()
    • computeUpperBound

      JTypeMirror computeUpperBound()
      Returns the upper bound of this type variable. This may be an intersection type. If the variable is unbounded, returns Object.
    • getPackageName

      default @NonNull String getPackageName()
      Description copied from interface: JAccessibleElementSymbol
      Returns the name of the package this element is declared in. This recurses into the enclosing elements if needed. If this is an array symbol, returns the package name of the element symbol. If this is a primitive type, returns "java.lang".

      This is consistent with Java 9's getPackageName().

      Specified by:
      getPackageName in interface JAccessibleElementSymbol
    • getModifiers

      default int getModifiers()
      Description copied from interface: JAccessibleElementSymbol
      Returns the modifiers of the element represented by this symbol, as decodable by the standard Modifier API.
      Specified by:
      getModifiers in interface JAccessibleElementSymbol
    • getEnclosingClass

      default @NonNull JClassSymbol getEnclosingClass()
      Description copied from interface: JAccessibleElementSymbol
      Returns the class that directly encloses this declaration. This is equivalent to Class.getEnclosingClass(). Returns null if this is a top-level type declaration.

      This is necessarily an already resolved symbol, because 1. if it's obtained from reflection, then the enclosing class is available 2. if it's obtained from an AST, then the enclosing class is in the same source file so we can know about it

      Specified by:
      getEnclosingClass in interface JAccessibleElementSymbol
    • acceptVisitor

      default <R, P> R acceptVisitor(SymbolVisitor<R,P> visitor, P param)
      Description copied from interface: JElementSymbol
      Dispatch to the appropriate visit method of the visitor and returns its result.
      Specified by:
      acceptVisitor in interface JElementSymbol
    • tryGetNode

      default ASTTypeParameter tryGetNode()
      Description copied from interface: JElementSymbol
      Returns the node that declares this symbol. Eg for JMethodSymbol, it's an ASTMethodDeclaration. Will only return non-null if the symbol is declared in the file currently being analysed.
      Specified by:
      tryGetNode in interface JElementSymbol