Rumah > Java > javaTutorial > teks badan

Apakah kepentingan kelas MethodHandles dalam Java 9?

WBOY
Lepaskan: 2023-08-25 17:21:09
ke hadapan
1130 orang telah melayarinya

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>
Salin selepas log masuk

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();
   }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan