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

  • 相关阅读:
    c#生成验证码
    使用Linq导出数据到execl
    AspNetPager2.0.dll组件的使用
    <httpRuntime>属性值的解析
    帮助文档chm的制作
    关于table边框打印不显示的样式设置
    【Reporting Services 报表开发】— 如何设置报表分页列标题每一页都显示
    Microsoft Dynamics CRM4.0 创建单据的时候,自动生成单据编号的通用方法
    【Reporting Services 报表开发】— 总结
    出现“安全时间戳无效,因为其创建时间(“2013-10-30T14:42:07.861Z”)是将来的时间。当前时间为“2013-10-30T14:36:23.988Z”,允许的时钟偏差是“00:05:00””的原因
  • 原文地址:https://www.cnblogs.com/johnnyflute/p/4078265.html
Copyright © 2011-2022 走看看