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

  • 相关阅读:
    时尚前沿的图片左右滚动效果-1
    瀑布流效果
    js遮罩层弹出显示效果组件化
    javascript学习笔记(三)
    前端开发技巧
    Pushlet后台推送
    比较抽象的面试题
    技术点
    HTML5特性
    struts2学习笔记(二)
  • 原文地址:https://www.cnblogs.com/johnnyflute/p/4078265.html
Copyright © 2020-2023  润新知