zoukankan      html  css  js  c++  java
  • java对象实例化

    JAVA类,只要知道了类名(全名)就可以创建其实例对象,通用的方法是直接使用该类提供的构造方法,如

    NewObject o = new NewObject();

    NewObject o = new NewObject("test");

    NewObject o = new NewObject(new String[]{"aaa","bbb"});

    除此之外,还可以利用java.lang.Class<T>类来实现JAVA类的实例化。

    1、空构造方法

    如果类有空构造方法,如下面的类

    public class NewObject
    {
     String name;
     
     public NewObject(String[] name)
     {
      this.name = name[0];

         System.out.println(“ the object is created!”);
     }
     
     public void write()
     {
      System.out.println(this.name);
     }
    }

    使用以下代码可实现实例化:

    NewObject no = null;
     try
       {
        no = (NewObject)Class.forName(className).newInstance();

       no.write();
       }
       catch (InstantiationException e)
       {
        e.printStackTrace();
       }
       catch (IllegalAccessException e)
       {
        e.printStackTrace();
       }
       catch (ClassNotFoundException e)
       {
        e.printStackTrace();
       }

    2、带参数构造方法

    public class NewObject
    {
     String name;
     
     public NewObject()
     {

         System.out.println(“ the object is created!”);
     }
     
     public void write()
     {
      System.out.println(“”);
     }
    }

    使用以下代码可实现实例化:

    try
       {
        no = (NewObject)Class.forName(className).getConstructor(String.class).newInstance(names);

    //no = (NewObject)Class.forName(className).getConstructor(new Object[]{String.class}).newInstance(names);
       }
       catch (IllegalArgumentException e)
       {
        e.printStackTrace();
       }
       catch (SecurityException e)
       {
        e.printStackTrace();
       }
       catch (InstantiationException e)
       {
        e.printStackTrace();
       }
       catch (IllegalAccessException e)
       {
        e.printStackTrace();
       }
       catch (InvocationTargetException e)
       {
        e.printStackTrace();
       }
       catch (NoSuchMethodException e)
       {
        e.printStackTrace();
       }
       catch (ClassNotFoundException e)
       {
        e.printStackTrace();
       }

    3、带数组参数构造方法

    public class NewObject
    {
     String name;
     
     public NewObject(String name)
     {
      this.name = name; 

        System.out.println(“ the object is created!”);
     }
     
     public void write()
     {
      System.out.println(this.name);    
     }
    }

    使用以下代码可实现实例化:

    try
       {
        Constructor[] cs;
        cs = Class.forName(className).getConstructors();
        Constructor cc = Class.forName(className).getConstructor(String[].class);
        no = (NewObject)cc.newInstance(new Object[]{names});
       }
       catch (SecurityException e)
       {
        e.printStackTrace();
       }
       catch (ClassNotFoundException e)
       {
        e.printStackTrace();
       }
       catch (NoSuchMethodException e)
       {
        e.printStackTrace();
       }
       catch (IllegalArgumentException e)
       {
        e.printStackTrace();
       }
       catch (InstantiationException e)
       {
        e.printStackTrace();
       }
       catch (IllegalAccessException e)
       {
        e.printStackTrace();
       }
       catch (InvocationTargetException e)
       {
        e.printStackTrace();
       }

  • 相关阅读:
    利用Powershell和ceye.io实现Windows账户密码回传
    Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
    python 读取二进制文件 转为16进制输出
    滴滴持续扩招私车 倒逼官方就范
    滴滴专车——司机提现流程
    滴滴专车司机升降级标准流程
    北京Uber优步司机奖励政策(9月21日~9月27日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(9月12日~9月18日)
    北京Uber优步司机奖励政策(9月14日~9月20日)
    天津市人民优步Uber司机奖励政策(9月14日~9月20日)
  • 原文地址:https://www.cnblogs.com/johnnyflute/p/4078265.html
Copyright © 2011-2022 走看看