logo

new Operator v primerjavi z metodo newInstance() v Javi

V Javi je new operator, kjer je newInstance() metoda, kjer se oba uporabljata za ustvarjanje objekta. Če poznamo vrsto predmeta, ki ga je treba ustvariti, lahko uporabimo nov operator, če pa ne poznamo tipa predmeta, ki naj bi bil ustvarjen na začetku in se posreduje med izvajanjem, se v tem primeru uporabi metoda newInstance().
Na splošno se operator new uporablja za ustvarjanje objektov, vendar če se želimo odločiti o vrsti predmeta, ki bo ustvarjen med izvajanjem, ne moremo uporabiti operatorja new. V tem primeru moramo uporabiti metoda newInstance(). .

Razpravljajmo o nov operater .  V Javi ustvarjanje objekta poteka v treh korakih, kot je navedeno: instanciranje objekta in inicializacija objekta ter priklic konstruktorja .

Datatype   variable;   

Ker bomo uporabili novo ključno besedo, prevajalnik interpretira spremenljivko kot objekt

Datatype   object   = new Constructor();

primer:

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);  } } 

Izhod
[1 4 3]

Opomba: Lahko ga uporabimo tudi s konstruktorjem, kjer želimo poklicati objekt in ne spremenljivke.

Zdaj, če pridemo do metode newInstance(), ki je prisotna znotraj paketa java.lang znotraj razreda razreda. Kot smo že omenili, se uporablja tam, kjer naložimo razred iz oddaljenih virov. 
Razmislite o scenariju, kjer se pozneje povežemo z bazo podatkov z uporabo našega programa java za izvajanje. To je mogoče bolj očitno razložiti z JDBC primer. Ne pozabite, da smo tam uporabili Class.forName() metodo za dinamično nalaganje registrov in poleg nje smo uporabili metodo newInstance() za dinamično ustvarjanje objektov.  

primer:

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');  } } 

Izhod:

new Operator v primerjavi z metodo newInstance() v Javi

Izhodna razlaga: forName() metoda vrne razred ' razred' objekt, na katerega kličemo newInstance() metoda, ki bo vrnila objekt tega razreda, ki ga posredujemo kot argument ukazne vrstice. 

  • Če opravljeni razred ne obstaja, potem ClassNotFoundException se bo pojavilo. 
  • InstantionExceptionse bo zgodilo, če posredovani razred ne vsebuje privzetega konstruktorja kot newInstance() metoda interno pokliče privzeti konstruktor tega določenega razreda. IllegalAccessExceptionse bo zgodilo, če nimamo dostopa do definicije podane definicije razreda.

Sorodni članek: Odsev v Javi