Class ArgType

java.lang.Object
jadx.core.dex.instructions.args.ArgType
Direct Known Subclasses:
ArgType.KnownType, ArgType.UnknownArg

@Immutable public abstract class ArgType extends Object
  • Field Details

    • INT

      public static final ArgType INT
    • BOOLEAN

      public static final ArgType BOOLEAN
    • BYTE

      public static final ArgType BYTE
    • SHORT

      public static final ArgType SHORT
    • CHAR

      public static final ArgType CHAR
    • FLOAT

      public static final ArgType FLOAT
    • DOUBLE

      public static final ArgType DOUBLE
    • LONG

      public static final ArgType LONG
    • VOID

      public static final ArgType VOID
    • OBJECT

      public static final ArgType OBJECT
    • CLASS

      public static final ArgType CLASS
    • STRING

      public static final ArgType STRING
    • ENUM

      public static final ArgType ENUM
    • THROWABLE

      public static final ArgType THROWABLE
    • ERROR

      public static final ArgType ERROR
    • EXCEPTION

      public static final ArgType EXCEPTION
    • RUNTIME_EXCEPTION

      public static final ArgType RUNTIME_EXCEPTION
    • OBJECT_ARRAY

      public static final ArgType OBJECT_ARRAY
    • WILDCARD

      public static final ArgType WILDCARD
    • UNKNOWN

      public static final ArgType UNKNOWN
    • UNKNOWN_OBJECT

      public static final ArgType UNKNOWN_OBJECT
    • UNKNOWN_OBJECT_NO_ARRAY

      public static final ArgType UNKNOWN_OBJECT_NO_ARRAY
    • UNKNOWN_ARRAY

      public static final ArgType UNKNOWN_ARRAY
    • NARROW

      public static final ArgType NARROW
    • NARROW_NUMBERS

      public static final ArgType NARROW_NUMBERS
    • NARROW_INTEGRAL

      public static final ArgType NARROW_INTEGRAL
    • NARROW_NUMBERS_NO_BOOL

      public static final ArgType NARROW_NUMBERS_NO_BOOL
    • NARROW_NEG_NUMBERS

      public static final ArgType NARROW_NEG_NUMBERS
    • NARROW_NUMBERS_NO_FLOAT

      public static final ArgType NARROW_NUMBERS_NO_FLOAT
    • WIDE

      public static final ArgType WIDE
    • INT_FLOAT

      public static final ArgType INT_FLOAT
    • INT_BOOLEAN

      public static final ArgType INT_BOOLEAN
    • BYTE_BOOLEAN

      public static final ArgType BYTE_BOOLEAN
    • UNKNOWN_INT

      public static final ArgType UNKNOWN_INT
    • hash

      protected int hash
  • Constructor Details

    • ArgType

      public ArgType()
  • Method Details

    • primitive

      private static ArgType primitive(PrimitiveType stype)
    • objectNoCache

      private static ArgType objectNoCache(String obj)
    • object

      public static ArgType object(String obj)
    • genericType

      public static ArgType genericType(String type)
    • genericType

      public static ArgType genericType(String type, ArgType extendType)
    • genericType

      public static ArgType genericType(String type, List<ArgType> extendTypes)
    • wildcard

      public static ArgType wildcard()
    • wildcard

      public static ArgType wildcard(ArgType obj, ArgType.WildcardBound bound)
    • generic

      public static ArgType generic(ArgType obj, List<ArgType> generics)
    • generic

      public static ArgType generic(ArgType obj, ArgType... generics)
    • generic

      public static ArgType generic(String obj, List<ArgType> generics)
    • generic

      public static ArgType generic(String obj, ArgType generic)
    • generic

      @TestOnly public static ArgType generic(String obj, ArgType... generics)
    • outerGeneric

      public static ArgType outerGeneric(ArgType genericOuterType, ArgType innerType)
    • array

      public static ArgType array(@NotNull @NotNull ArgType vtype)
    • array

      public static ArgType array(@NotNull @NotNull ArgType type, int dimension)
    • unknown

      public static ArgType unknown(PrimitiveType... types)
    • isTypeKnown

      public boolean isTypeKnown()
    • getPrimitiveType

      public PrimitiveType getPrimitiveType()
    • isPrimitive

      public boolean isPrimitive()
    • getObject

      public String getObject()
    • isObject

      public boolean isObject()
    • isGeneric

      public boolean isGeneric()
    • isGenericType

      public boolean isGenericType()
    • getGenericTypes

      public List<ArgType> getGenericTypes()
    • getExtendTypes

      public List<ArgType> getExtendTypes()
    • setExtendTypes

      public void setExtendTypes(List<ArgType> extendTypes)
    • getWildcardType

      public ArgType getWildcardType()
    • getWildcardBound

      public ArgType.WildcardBound getWildcardBound()
    • isWildcard

      public boolean isWildcard()
    • getOuterType

      public ArgType getOuterType()
    • getInnerType

      public ArgType getInnerType()
    • isArray

      public boolean isArray()
    • getArrayDimension

      public int getArrayDimension()
    • getArrayElement

      public ArgType getArrayElement()
    • getArrayRootElement

      public ArgType getArrayRootElement()
    • contains

      public abstract boolean contains(PrimitiveType type)
    • selectFirst

      public abstract ArgType selectFirst()
    • getPossibleTypes

      public abstract PrimitiveType[] getPossibleTypes()
    • isCastNeeded

      public static boolean isCastNeeded(RootNode root, ArgType from, ArgType to)
    • isInstanceOf

      public static boolean isInstanceOf(RootNode root, ArgType type, ArgType of)
    • isClsKnown

      public static boolean isClsKnown(RootNode root, ArgType cls)
    • canBeObject

      public boolean canBeObject()
    • canBeArray

      public boolean canBeArray()
    • canBePrimitive

      public boolean canBePrimitive(PrimitiveType primitiveType)
    • canBeAnyNumber

      public boolean canBeAnyNumber()
    • convertFromPrimitiveType

      public static ArgType convertFromPrimitiveType(PrimitiveType primitiveType)
    • parse

      public static ArgType parse(String type)
    • parse

      public static ArgType parse(char f)
    • getRegCount

      public int getRegCount()
    • containsGeneric

      public boolean containsGeneric()
    • containsTypeVariable

      public boolean containsTypeVariable()
    • isVoid

      public boolean isVoid()
    • visitTypes

      @Nullable public <R> R visitTypes(Function<ArgType,R> visitor)
      Recursively visit all subtypes of this type. To exit return non-null value.
    • tryToResolveClassAlias

      public static ArgType tryToResolveClassAlias(RootNode root, ArgType type)
    • tryToResolveClassAlias

      public static List<ArgType> tryToResolveClassAlias(RootNode root, List<ArgType> types)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • internalEquals

      abstract boolean internalEquals(Object obj)
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object