Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでリフレクションを使用して静的内部クラスをインスタンス化する方法は?


静的内部クラス 外部クラスのインスタンスを必要とせずにインスタンス化できます 。一般的に、内部クラス ネストされたクラスの一部です 、非静的ネストクラスと呼ばれます Javaで。内部クラスのタイプは、メンバー内部クラス、匿名内部クラスです。 およびローカル内部クラス。

InnerClass.class.newInstance()を使用して、リフレクションを使用して静的内部クラスをインスタンス化できます。 。非静的内部クラスをインスタンス化するために外部クラスのインスタンスが必要な場合は、新しいの前に指定できます。 オペレーター。

import java.lang.reflect.*;
public class InnerclassWithReflectionTest {
   public static void main(String args[]) {
      try {
         InnerClass inner = (InnerClass) InnerClass.class.newInstance();
         inner.test();
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
   // inner class
   static class InnerClass {
      public void test() {
         System.out.println("Welcome to TutorialsPoint !!!");
      }
   }
}

出力

Welcome to TutorialsPoint !!!

  1. Javaで匿名内部クラスを使用してインターフェースを実装するにはどうすればよいですか?

    匿名の内部クラスは名前のないクラスです。インスタンス化ラインで直接定義します。 例 次のプログラムでは、Anonymous内部クラスを使用してTutorialsPointインターフェイスのtoString()メソッドを実装し、その戻り値を出力しています。 interface TutorialsPoint{    public String toString(); } public class Main implements TutorialsPoint {    public static void main(String[] args) { &nbs

  2. Javaでサブパッケージを使用する方法は?

    サブパッケージはサブディレクトリに似ています。例を考えてみましょう。同社には、Dell.javaソースファイルを含むcom.apple.computersパッケージがあり、このような一連のサブディレクトリに含まれていました- ....\com\apple\computers\Dell.java コンパイル時に、コンパイラーは、クラス、インターフェース、および列挙型で定義されているものごとに異なる出力ファイルを作成します。出力ファイルのベース名はタイプの名前であり、その拡張子は.classです。 例- // File Name:Dell.java package com.apple.compu