Module java.base
Package java.lang.invoke

Enum Class MethodHandles.Lookup.ClassOption

java.lang.Object
java.lang.Enum<MethodHandles.Lookup.ClassOption>
java.lang.invoke.MethodHandles.Lookup.ClassOption
所有实现的接口:
Serializable, Comparable<MethodHandles.Lookup.ClassOption>, Constable
封装类:
MethodHandles.Lookup

public static enum MethodHandles.Lookup.ClassOption extends Enum<MethodHandles.Lookup.ClassOption>
指定一组类选项,指定由Lookup::defineHiddenClass方法创建的隐藏类是否动态添加为查找类的新成员,和/或隐藏类是否与标记为其定义加载器的类加载器具有强关系。
自 JDK 版本:
15
  • Enum Constant Details

    • NESTMATE

      public static final MethodHandles.Lookup.ClassOption NESTMATE
      指定将隐藏类添加到查找类的nest作为巢友。

      隐藏的巢友类可以访问同一巢中所有类和接口的私有成员。

      参见:
    • STRONG

      public static final MethodHandles.Lookup.ClassOption STRONG
      指定隐藏类与标记为其定义加载器的类加载器具有关系,就像普通类或接口与其自己的定义加载器一样。这意味着只有在其定义加载器不可达并且可能被垃圾收集器回收时,才可以卸载隐藏类(JLS 12.7)。

      默认情况下,即使标记为其定义加载器的类加载器是可达的,隐藏类或接口也可以被卸载。

      参见 Java 语言规范:
      12.7 类和接口的卸载
  • Method Details

    • values

      public static MethodHandles.Lookup.ClassOption[] values()
      返回包含此枚举类的常量的数组,按照它们声明的顺序排列。
      返回:
      包含此枚举类的常量的数组,按照它们声明的顺序排列
    • valueOf

      public static MethodHandles.Lookup.ClassOption valueOf(String name)
      返回具有指定名称的此类的枚举常量。字符串必须与此类中用于声明枚举常量的标识符完全匹配。(不允许存在多余的空格字符。)
      参数:
      name - 要返回的枚举常量的名称。
      返回:
      具有指定名称的枚举常量
      抛出:
      IllegalArgumentException - 如果此枚举类没有具有指定名称的常量
      NullPointerException - 如果参数为 null