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

转载于:https://www.cnblogs.com/manwuyuantao/archive/2012/11/08/2759769.html

Java对象的实例化相关推荐

  1. Java对象的实例化过程是怎样的?

    勇气 对象实例化过程 底层实现原理 检查符号引用 分配内存 线程安全处理 初始化内存 设置对象信息 执行init构造 代码示例 对象实例化过程 对象实例化过程,就是执行类构造函数对应在字节码文件中的 ...

  2. Java 对象生命周期

    Java 对象生命周期 一直对Java对象的实例化.对象.对象的引用.堆 栈存放的内容迷惑不解.看了 Java编程思想,理解似乎又深了一层. 对象和对象的引用 Java 编程思想中,把对象的引用比喻成 ...

  3. java new 删除吗,java泛型对象初始化-java泛型对象会实例化吗T t=new T()

    java泛型对象初始化--java泛型对象能实例化吗T t=new T() java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 泛型反射的 ...

  4. Java中对象的实例化顺序

    文章目录 1 Java中对象的实例化顺序 1 Java中对象的实例化顺序 继承后的初始化顺序: 静态成员包括静态构造代码块,初始化顺序跟书写顺序有关.

  5. Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  6. java对象实例化的方式

    java对象实例化的方式有以下几种: 1.使用new 2.工厂模式 3.反射 4.clone()方法 5.反序列化方式 /** 实现Cloneable和Serializable接口 */ public ...

  7. java基础代码实例_基础篇:详解JAVA对象实例化过程

    1 对象的实例化过程 对象的实例化过程是分成两部分:类的加载初始化,对象的初始化 要创建类的对象实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化 类初始化就是执行方法,对象实例化是执 ...

  8. 创建java类并实例化类对象

    创建java类并实例化类对象例一 1.面向对象的编程关注于类的设计 2.设计类实际上就是设计类的成员 3.基本的类的成员,属性(成员变量)&方法 面向对象思想的落地法则一: 1.设计类,并设计 ...

  9. java实例化类之后如何赋值_深入理解Java对象的创建过程:类的初始化与实例化...

    摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...

最新文章

  1. java获取当前日期时间代码
  2. 程序员面试金典 - 面试题 03.05. 栈排序(两栈)
  3. 数据库基础知识——初始MySQL
  4. silverlight 学习笔记 (七):Prism的第一个应用
  5. Ubuntu 双系统安装流程
  6. 国家公祭日(国家哀悼日)将网站改成悼念灰黑色的方法
  7. 源码解析zxing条码边距及总宽度计算规则,附java使用zxing生成条形码,并去除条码两边空白
  8. 刘夏真的简历中国科学院计算机所,刘夏_广西医科大学研究生导师信息
  9. DeFi黑暗森林历险记,我这样追回了百万美元
  10. 怎么将计算机设置为光盘引导模式,通过bios设置从光盘/光驱启动的方法
  11. 华为手机便签有扫描的功能么
  12. 自己构建iSCSI磁盘阵列
  13. android之java程序性能优化
  14. Spring-第一篇-快速入门
  15. linux看内存插槽,Linux查看内存大小和插槽
  16. 荣耀手表2给女生带来无数次无法拒绝的心动
  17. mapbox和leaflet给地图添加遥感影像
  18. RTD热电阻/TC热电偶
  19. 虎牙泛游戏直播布局获认可 IPO 40天市值暴涨300%
  20. ldap认证 java_Java实现LDAP认证(上) | 学步园

热门文章

  1. lua学习笔记之垃圾收集
  2. java8中的Lamba表达式
  3. LeetCode Trips and Users(关联、分组,聚合)
  4. const引用和非const引用
  5. windows下安装RabbitMQ
  6. oracle常用日期函数
  7. 分布式系统理论基础,以及选举,多数派,租约
  8. Python内置函数(63)——super
  9. Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
  10. ACM PKU 1192 最优连通子集