Java의 new Operator 및 newInstance() 메소드

Java의 new Operator 및 newInstance() 메소드

Java에서 new는 newInstance()가 객체 생성에 사용되는 메서드인 연산자입니다. 생성될 객체의 유형을 알고 있으면 new 연산자를 사용할 수 있지만 처음에 생성될 객체의 유형을 모르고 런타임에 전달되는 경우 newInstance() 메서드가 사용됩니다.
일반적으로 new 연산자는 객체를 생성하는 데 사용되지만 런타임에 생성될 객체 유형을 결정하려는 경우 new 연산자를 사용할 수 있는 방법이 없습니다. 이 경우 우리는 newInstance() 메서드 .

우리가 논의하자 새로운 운영자 .  Java에서 객체 생성은 나열된 3단계, 즉 객체 인스턴스화와 객체 초기화로 이루어집니다. 생성자 호출 .

Datatype   variable;    

new 키워드를 사용하면 컴파일러는 변수를 객체로 해석합니다.

Datatype   object   = new Constructor(); 

예:

Java
   // Java Program to Illustrate new Operator   // Importing required classes    import     java.util.*  ;   // Main class   class   GFG     {      // Main drive method      public     static     void     main  (  String  []     args  )      {      // List   al;      // Ny now al is just a variable      // Now creating object using new operator      List   <  Integer  >     al     =     new     ArrayList   <>  ();      // Adding elements to above List      al  .  add  (  1  );      al  .  add  (  4  );      al  .  add  (  3  );      // Printing elements of List      System  .  out  .  print  (  al  );      }   }   

산출
[1 4 3] 

메모: 변수가 아닌 객체를 호출하려는 경우에도 생성자와 함께 사용할 수 있습니다.

이제 Class 클래스 내부의 java.lang 패키지에 있는 newInstance() 메서드를 생각해 보겠습니다. 이미 논의한 것처럼 원격 소스에서 클래스를 로드하는 데 사용됩니다. 
나중에 실행을 위해 Java 프로그램을 사용하여 데이터베이스에 연결하는 시나리오를 생각해 보세요. 를 통해 더욱 명확하게 설명할 수 있다. JDBC 예. 거기서 우리가 사용한 것을 기억하세요. 클래스.for이름() 메소드를 사용하여 레지스터를 동적으로 로드했으며 그 위에 newInstance() 메소드를 사용하여 동적으로 객체를 생성했습니다.  

예:

Java
   // Java Program to Demonstrate Working of newInstance()   // Method present inside java.lang.Class   // Class 1   // Class 2   class   A     {      int     a  ;   }   class   B     {      int     b  ;   }   // Class 3   // Main class   public     class   GFG     {      // Method 1      // To create an instance of class whose name is      // passed as a string 'c'.      public     static     void     fun  (  String     c  )      throws     InstantiationException        IllegalAccessException        ClassNotFoundException      {      // Creating an object of type 'c'      Object     obj     =     Class  .  forName  (  c  ).  newInstance  ();      // Printing the type of object created      System  .  out  .  println  (  'Object created for class:'      +     obj  .  getClass  ().  getName  ());      }      // Method 2      // Main driver method      public     static     void     main  (  String  []     args  )      throws     InstantiationException        IllegalAccessException        ClassNotFoundException      {      // Calling above method over 'A'      fun  (  'A'  );      }   }   

산출:

Java의 new Operator 및 newInstance() 메소드

출력 설명: 이름() 방법 클래스 '를 반환합니다. 수업' 우리가 호출하는 객체 새로운 인스턴스() 명령줄 인수로 전달하는 해당 클래스의 개체를 반환하는 메서드입니다. 

  • 전달된 클래스가 존재하지 않는 경우 ClassNotFoundException 발생합니다. 
  • InstantionException 전달된 클래스에 기본 생성자가 포함되어 있지 않으면 발생합니다. 새로운 인스턴스() 메소드는 내부적으로 특정 클래스의 기본 생성자를 호출합니다.  불법접근예외 지정된 클래스 정의의 정의에 액세스할 수 없는 경우 발생합니다.

관련 기사: 자바에서의 리플렉션


인기 기사

범주

재미있는 기사