Rumah  >  Artikel  >  Java  >  Apakah kepentingan kelas MethodHandles dalam Java 9?

Apakah kepentingan kelas MethodHandles dalam Java 9?

WBOY
WBOYke hadapan
2023-08-25 17:21:091083semak imbas

Kelas

在Java 9中,MethodHandles类的重要性是什么?

MethodHandles telah diperkenalkan dalam versi Java 7. Kelas ini terutamanya menambah beberapa kaedah statik untuk menambah baik kefungsian dan dibahagikan kepada beberapa kategori, seperti cari kaedah untuk mencipta pemegang kaedah untuk mengakses kaedah dan medan, kaedah gabungan untuk menggabungkan atau menukar pemegang kaedah sedia ada kepada pemegang kaedah baharu , dan kaedah kilang untuk mencipta pemegang kaedah yang mensimulasikan operasi JVM biasa yang lain atau corak aliran kawalan. Di Java 9, kelas MethodHandles telah dipertingkatkan, banyak perubahan telah diperkenalkan, dan kaedah statik baharu telah ditambah seperti arrayLength(), arrayConstructor(), zero(), dsb. Terjemahan bahasa Cina bagi

Tatabahasa

<strong>public class MethodHandles extends Object</strong>

Contoh

ialah:

Contoh

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

public class MethodHandlesTest {
   public void MethodHandle1() {
      try {
         <strong>MethodHandle </strong>methodHandleLength = <strong>MethodHandles</strong>.<strong>arrayLength</strong>(int[].class);
         int[] array = new int[] {5, 10, 15, 20};
         int arrayLength = (int) methodHandleLength.<strong>invoke</strong>(array);
         System.out.println("Length of Array using Method Handle is: " + arrayLength);

         <strong>MethodHandle </strong>methodHandleConstructor = <strong>MethodHandles.arrayConstructor</strong>(int[].class);
         int[] newArray = (int[]) methodHandleConstructor.<strong>invoke</strong>(3);
         System.out.println("Array Constructed using Method Handle of Size: " + newArray.length);

         int x = (int) <strong>MethodHandles.zero</strong>(int.class).<strong>invoke()</strong>;
         System.out.println("Default Value of Primitive Integer using Method Handles is: " + x);
         String y = (String) <strong>MethodHandles.zero</strong>(String.class).<strong>invoke()</strong>;
         System.out.println("Default Value of String using Method Handles is: " + y);
      } catch(Throwable e) {
         e.printStackTrace();
      }
   }
   public static void main(String args[]) {
      new MethodHandlesTest().MethodHandle1();
   }
}

Output

<strong>Length of Array using Method Handle is: 4
Array Constructed using Method Handle of Size: 3
Default Value of Primitive Integer using Method Handles is: 0
Default Value of String using Method Handles is: null</strong>

Atas ialah kandungan terperinci Apakah kepentingan kelas MethodHandles dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam