Interface ByteCodeElement

    • Method Detail

      • isVisibleTo

        boolean isVisibleTo​(TypeDescription typeDescription)

        Checks if this element is visible from a given type. Visibility is a wider criteria then accessibility which can be checked by isAccessibleTo(TypeDescription). Visibility allows the invocation of a method on itself or on external instances.

        Note: A method or field might define a signature that includes types that are not visible to a type. Such methods can be legally invoked from this type and can even be implemented as bridge methods by this type. It is however not legal to declare a method with invisible types in its signature that are not bridges what might require additional validation.

        Important: Virtual byte code elements, i.e. virtual methods, are only considered visible if the type they are invoked upon is visible to a given type. The visibility of such virtual members can therefore not be determined by only investigating the invoked method but requires an additional check of the target type.

        Parameters:
        typeDescription - The type which is checked for its visibility of this element.
        Returns:
        true if this element is visible for typeDescription.
      • isAccessibleTo

        boolean isAccessibleTo​(TypeDescription typeDescription)

        Checks if this element is accessible from a given type. Accessibility is a more narrow criteria then visibility which can be checked by isVisibleTo(TypeDescription). Accessibility allows the invocation of a method on external instances or on itself. Methods that can be invoked from within an instance might however not be considered accessible.

        Note: A method or field might define a signature that includes types that are not visible to a type. Such methods can be legally invoked from this type and can even be implemented as bridge methods by this type. It is however not legal to declare a method with invisible types in its signature that are not bridges what might require additional validation.

        Important: Virtual byte code elements, i.e. virtual methods, are only considered visible if the type they are invoked upon is visible to a given type. The visibility of such virtual members can therefore not be determined by only investigating the invoked method but requires an additional check of the target type.

        Parameters:
        typeDescription - The type which is checked for its accessibility of this element.
        Returns:
        true if this element is accessible for typeDescription.