# Interface JavaLanguageVersion

All Superinterfaces:
  `Comparable<JavaLanguageVersion>`

public interface JavaLanguageVersion extends Comparable<JavaLanguageVersion>
Represents a Java Language version

Since:
  6.7

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `asInt()`
  Return this version as a number, 14 for Java 14.
  `boolean`
  `canCompileOrRun(int otherVersion)`
  Indicates if this version can compile or run code based on the passed in language version.
  `boolean`
  `canCompileOrRun(JavaLanguageVersion other)`
  Indicates if this version can compile or run code based on the passed in language version.
  `static JavaLanguageVersion`
  `current()`
  Get the current (i.e., the current runtime) Java Language version.
  `static JavaLanguageVersion`
  `of(int version)`
  `static JavaLanguageVersion`
  `of(String version)`
  `String`
  `toString()`
  Return this version as a String, "14" for Java 14.

  ### Methods inherited from interface Comparable

  `compareTo`

- ## Method Details

  - ### of

    static JavaLanguageVersion of(int version)

  - ### of

    static JavaLanguageVersion of(String version)

  - ### current

    @Incubating static JavaLanguageVersion current()
    Get the current (i.e., the current runtime) Java Language version.
    Returns:
      the current Java Language version
    Since:
      8.8

  - ### asInt

    int asInt()
    Return this version as a number, 14 for Java 14.

    Given the type used, this method returns the simple version even for versions lower than 5.

    Returns:
      the version number
    See Also:
      - `toString()`

  - ### toString

    String toString()
    Return this version as a String, "14" for Java 14.

    This method will return `1.<version>` when the version is lower than 5.

    Overrides:
      `toString` in class `Object`
    Returns:
      the version number
    Since:
      6.8

  - ### canCompileOrRun

    boolean canCompileOrRun(JavaLanguageVersion other)
    Indicates if this version can compile or run code based on the passed in language version.

    For example, Java 14 can compile or run code from Java 11, but not the opposite.

    Parameters:
      `other` - the language version to check
    Returns:
      `true` if this version can compile or run code from the other version, `false` otherwise

  - ### canCompileOrRun

    boolean canCompileOrRun(int otherVersion)
    Indicates if this version can compile or run code based on the passed in language version.

    For example, Java 14 can compile or run code from Java 11, but not the opposite.

    Parameters:
      `otherVersion` - the language version to check, as an `int`
    Returns:
      `true` if this version can compile or run code from the other version, `false` otherwise