列挙型クラスClassFile.ConstantPoolSharingOption

java.lang.Object
java.lang.Enum<ClassFile.ConstantPoolSharingOption>
java.lang.classfile.ClassFile.ConstantPoolSharingOption
すべての実装されたインタフェース:
Serializable, ClassFile.Option, Comparable<ClassFile.ConstantPoolSharingOption>, Constable
含まれているインタフェース:
ClassFile

public static enum ClassFile.ConstantPoolSharingOption extends Enum<ClassFile.ConstantPoolSharingOption> implements ClassFile.Option
classファイルの変換時に元の定数プールから拡張するかどうかを示すオプション。 デフォルトはSHARED_POOLで、元の定数プールから拡張されます。

このオプションは、transformClassのすべてのオーバーロードに影響します。 元の定数プールから拡張すると、索引は定数プールにそのまま保持されるため、処理時間の大幅な最適化が可能になり、元の classファイルと変換された classファイルの差異が最小限に抑えられますが、元のclassファイルの多くの要素が削除され、元の定数プール・エントリの多くが使用されなくなると、変換されたclassファイルが大きくなる可能性があります。

このオプションのかわりに、ClassFile.build(ClassEntry, ConstantPoolBuilder, Consumer)を直接使用します。 任意の定数プールからの拡張が可能で、ビルドされたclassファイルが複数の元のclassファイルの構造を再利用する場合に便利です。

導入されたバージョン:
24
関連項目:
  • ネストされたクラスのサマリー

    Enumクラスで宣言されたネストされたクラス/インタフェース

    Enum.EnumDesc<E>
    修飾子と型
    クラス
    説明
    static final class 
    Enum.EnumDesc<E extends Enum<E>>
    enum定数の「名目記述子」
  • 列挙型定数のサマリー

    列挙型定数
    列挙型定数
    説明
    classファイルの変換時に新しい定数プールを作成します。
    classファイルを変換するときに、元の定数プールから新しい定数プールを拡張します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定された名前を持つこのクラスのenum定数を返します。
    この列挙クラスの定数を含む配列を宣言されている順序で 返します。

    Enumクラスで宣言されたメソッド

    clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    修飾子と型
    メソッド
    説明
    protected final Object
    CloneNotSupportedExceptionをスローします。
    final int
    このenumと指定されたオブジェクトの順序を比較します。
    このインスタンスの列挙型記述子EnumDescを返します(作成可能な場合)。作成できない場合は空のOptionalを返します。
    final boolean
    equals(Object other)
    指定されたオブジェクトがこのenum定数と同じ場合は、trueを返します。
    protected final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は削除のために非推奨になりました。
    このenum定数のenum型に対応するClassオブジェクトを返します。
    final int
    このenum定数のハッシュ・コードを返します。
    final String
    enum宣言で宣言されているとおりのenum定数の名前を返します。
    final int
    列挙定数の序数(列挙宣言での位置。初期定数はゼロの序数に割り当てられる)を返します。
    宣言に含まれるとおりのenum定数の名前を返します。
    static <T extends Enum<T>>
    T
    valueOf(Class<T> enumClass, String name)
    指定された名前の指定されたenumクラスのenum定数を返します。

    クラスオブジェクトで宣言されたメソッド

    getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • 列挙型定数の詳細

    • SHARED_POOL

      public static final ClassFile.ConstantPoolSharingOption SHARED_POOL
      classファイルを変換するときに、元の定数プールから新しい定数プールを拡張します。

      次の2つの変換は同等です:

      ClassModel originalClass = ...
      ClassDesc resultClassName = ...
      ClassTransform classTransform = ...
      var resultOne = ClassFile.of(ConstantPoolSharingOption.SHARED_POOL)
              .transformClass(originalClass, resultClassName, classTransform);
      var resultTwo = ClassFile.of().build(resultClassName, ConstantPoolBuilder.of(originalClass),
              clb -> clb.transform(originalClass, classTransform));
      

      関連項目:
    • NEW_POOL

      public static final ClassFile.ConstantPoolSharingOption NEW_POOL
      classファイルの変換時に新しい定数プールを作成します。

      次の2つの変換は同等です:

      ClassModel originalClass = ...
      ClassDesc resultClassName = ...
      ClassTransform classTransform = ...
      var resultOne = ClassFile.of(ConstantPoolSharingOption.NEW_POOL)
              .transformClass(originalClass, resultClassName, classTransform);
      var resultTwo = ClassFile.of().build(resultClassName, ConstantPoolBuilder.of(),
              clb -> clb.transform(originalClass, classTransform));
      

      関連項目:
  • メソッドの詳細

    • values

      public static ClassFile.ConstantPoolSharingOption[] values()
      この列挙クラスの定数を含む配列を宣言されている順序で 返します。
      戻り値:
      この列挙クラスの定数を宣言されている順序で含む配列
    • valueOf

      public static ClassFile.ConstantPoolSharingOption valueOf(String name)
      指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子と正確に一致する必要があります。 (不適切な空白文字は許可されません。)
      パラメータ:
      name - 返される列挙型定数の名前。
      戻り値:
      指定された名前を持つ列挙型定数
      スロー:
      IllegalArgumentException - この列挙型クラスに指定された名前の定数がない場合
      NullPointerException - 引数がnullの場合