Package org.codehaus.groovy.vmplugin.v8

## Class Java8

- java.lang.Object
- - org.codehaus.groovy.vmplugin.v5.Java5
  - - org.codehaus.groovy.vmplugin.v6.Java6
    - - org.codehaus.groovy.vmplugin.v7.Java7
      - - org.codehaus.groovy.vmplugin.v8.Java8

- All Implemented Interfaces:
    `VMPlugin`
  Direct Known Subclasses:
    `Java9`

      public class Java8
      extends Java7

  Java 8 based functions.
  Since:
    2.5.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Java8()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `fillParameterNames​(String[] names, Member member)` |
    `protected int` | `getElementCode​(ElementType value)` |
    `Object` | `getInvokeSpecialHandle​(Method method, Object receiver)` | Returns a handle with bound receiver to invokeSpecial the given method.
    `Class<?>[]` | `getPluginDefaultGroovyMethods()` |
    `int` | `getVersion()` | Gives the version the plugin is made for
    `static MethodHandles.Lookup` | `of​(Class<?> declaringClass)` |

    - ### Methods inherited from class org.codehaus.groovy.vmplugin.v7.Java7

      `invalidateCallSites, invokeHandle`

    - ### Methods inherited from class org.codehaus.groovy.vmplugin.v5.Java5

      `configureAnnotation, configureAnnotationFromDefinition, configureAnnotationNodeFromDefinition, configureClassNode, configureTypeVariableDefinition, configureTypeVariableReference, getPluginStaticGroovyMethods, setAdditionalClassInformation`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Java8

          public Java8()

  - ### Method Detail

    - #### getVersion

          public int getVersion()

      Description copied from interface: `VMPlugin`
      Gives the version the plugin is made for
      Specified by:
        `getVersion` in interface `VMPlugin`
      Overrides:
        `getVersion` in class `Java7`
      Returns:
        7 for jdk7, 8 for jdk8, 9 for jdk9 or higher

    - #### getPluginDefaultGroovyMethods

          public Class<?>[] getPluginDefaultGroovyMethods()

      Specified by:
        `getPluginDefaultGroovyMethods` in interface `VMPlugin`
      Overrides:
        `getPluginDefaultGroovyMethods` in class `Java5`

    - #### getElementCode

          protected int getElementCode​(ElementType value)

      Overrides:
        `getElementCode` in class `Java5`

    - #### fillParameterNames

          protected void fillParameterNames​(String[] names,
                                            Member member)

      Overrides:
        `fillParameterNames` in class `Java5`

    - #### of

          public static MethodHandles.Lookup of​(Class<?> declaringClass)

    - #### getInvokeSpecialHandle

          public Object getInvokeSpecialHandle​(Method method,
                                               Object receiver)

      Description copied from interface: `VMPlugin`
      Returns a handle with bound receiver to invokeSpecial the given method. This method will require at least Java 7, but since the source has to compile on older Java versions as well it is not marked to return a MethodHandle and uses Object instead
      Specified by:
        `getInvokeSpecialHandle` in interface `VMPlugin`
      Overrides:
        `getInvokeSpecialHandle` in class `Java7`
      Returns:
        null in case of jdk<7, otherwise a handle that takes the method call arguments for the invokespecial call