使用场合:不知道具体要去实例化那个类的对象,通常这个参数由用户传入。即类名不确定!

使用方法:

Class newTraffic = Class.forName("Car");

Traffic t= (Traffic)newTraffic.newInstance();

说明:

1、newTraffic为定义的一个变量,类型为Class,用来保存我们动态创建对象实例的类名;

2、forName()这个方法传入的参数是类名,即Car是我们定义好的一个类,返回的是Car这个类;

3、newInstance()即为实例化一个对象,注意它无参数,即它默认调用一个不带参的构造方法,如果你没定义这个不带参的构造方法,系统会调用默认的不带参的构造方法;

4、(Traffic)newTraffic.newInstance(); 这里使用了强制类型转换,如果不进行转换,它默认返回一个原生的Object,这个Object无法调用Car类的任何方法;

5、Traffic是我们定义的一个接口,其中有Car和Plane等具体的类来实现这个接口中的方法。后面可以通过t来调用接口中的方法,当然这个方法的具体实现是放到Car或者Plane等类中的,这样就好比是我们动态创建了Car类,然后调用它里面的一些方法。说得有点通俗,这个在Java里称为接口回调

java 动态实例化对象_记录Java中如何动态实例化一个对象相关推荐

  1. java jsonobject 转对象_解析JSON中JSONObject的高级使用

    文末会有读者福利 简介: 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON.JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于 ...

  2. Java存储任意对象_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...

    最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应 ...

  3. java有几大对象_一个 Java 对象到底有多大?

    阅读本文大概需要 2.8 分钟. 出处:http://u6.gg/swLPg 编写 Java 代码的时候,大多数情况下,我们很少关注一个 Java 对象究竟有多大(占据多少内存),更多的是关注业务与逻 ...

  4. java用接口实例化对象_[求助]迷茫中,接口可以直接实例化对象吗?

    可能是我没有写完整吧,还是我没有理解好 1 接口 public interface SetAndGetWeight { public void setW(double weight); public ...

  5. java 创建动态int数组_在Scala中创建动态增长数组的最佳方法是什么?

    如果要使用不可变结构,可以使用以下方法: scala> val orgList = List(1,2,3) orgList: List[Int] = List(1, 2, 3) scala> ...

  6. java的子类对象_在Java中将子类对象分配给超类对象时会发生什么?

    在Java中将一种数据类型转换为另一种数据类型称为转换.如果将较高的数据类型转换为较低的数据类型,则称为窄化(将较高的数据类型值分配给较低的数据类型变量).char ch = (char)5;如果将较 ...

  7. java 反射获取对象_使用Java反射机制获取对象

    本文由广州疯狂软件教育java培训分享: 构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了! package interf; public interface Person ...

  8. java 字节码对象_通过java字节码分析学习对象初始化顺序

    mockery.checking(new Expectations() { { one(new Object()).toString(); will(returnValue("") ...

  9. java 字符串转对象_【Java】把一个对象转化为String字符串

    把一个对象obj转化为字符串,我有三个想法. obj + ""; obj.toString(); String.valueOf(obj); 这三种方法分别是我在三个阶段的用法. 最 ...

最新文章

  1. uniapp 上拉加载更多完整实现源码
  2. 反欺诈中所用到的机器学习模型有哪些?
  3. poj 1740 A New Stone Game 博弈
  4. ant自动打包多个android项目为apk
  5. svn导出文件进行比较
  6. 学校为什么要单位接收函_温江会计培训学校:为什么要学习会计实操
  7. 【论文解读】通过知识蒸馏促进轻量级深度估计
  8. c++基本类型c++string与c风格字符串的相互转化
  9. JAVA 15发布,越来越像C# ?9月排名,C#增幅狠甩JAVA
  10. 用mingw链接msvc生成的库时,无定义chkstk问题的解决
  11. linux arm current_thread_info定义,linux 内核 current全局变量
  12. 曾经很火但消失了的软件,你还记得几个?
  13. C++中const的一些知识点
  14. CentOS 7 怎样自动连接网络
  15. 三电系统集成技术杂谈
  16. 使用FireBird数据库基本知识
  17. 学校题库管理系统需求分析
  18. 腾讯管家for android,腾讯手机管家(原QQ手机管家)V6.1.0 for Android 官方版
  19. 联想扬天ACPI\LBAI0100未知设备的处理方法 此驱动为电源管理
  20. DVWA windows提权

热门文章

  1. ncurses鼠标事件:mousemask(),ALL_MOUSE_EVENTS,KEY_MOUSE,getmouse(),mouse_grafo(),wmouse_trafo()
  2. Linux指令:tar打包与压缩
  3. caj文件浏览器_知网上PDF文件下载的问题怎么解决?
  4. OpenCv之图像二值化(笔记12)
  5. python nan判断_Python数据分析:Numpy基本操作
  6. servlet请求的执行过程_Springmvc执行流程
  7. python实现IIR高通低通,带通,带阻滤波器详解及应用案例
  8. linux启用shell脚本,linux下开机启动shell脚本
  9. Java数组在方法区吗,Java数组的操作方法
  10. 微软开源 TensorFlow-DirectML,为 WSL2 提供 GPU 支持