Java产生Class类的三种实例化对象的方法

1.object.getClass

2.类名.class直接根据某个具体的类来取得Class实例化对象

3.Class.forName(String className)

public class TestClass {

public static void main(String[] args) {

//1.object.getClass

Date date1 = new Date();

Class cls = date1.getClass();

//java.util.Date

System.out.println("方法1 " + cls.getName());

//class java.util.Date

System.out.println("方法1 " + cls);

//2.类名.class

//一般用类的全限定名

Class cls1 = java.util.Date.class;

//class java.util.Date

System.out.println("方法2 " + cls1);

//3.推荐用

Class cls2 = null;//放在外面可以访问

try {

cls2 = Class.forName("java.util.Date");

System.out.println("方法3 " + cls2);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

System.out.println("比较三个对象");

System.out.println(cls1 == cls);

System.out.println(cls == cls2);

}

}

推荐用第三种,第一种已经new了一个对象了,第二种写的太繁琐了

对象实例化的三种方法

1.new关键字

2.反射

3.反序列化

在反射中提供public T newInstance() throws InstantiationException, IllegalAccessException方法

public class TestClass1 {

public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {

//1.getClass()方法

Date date = new Date();

Class cls = date.getClass();

try {

Date date1 = (Date) cls.newInstance();

System.out.println("1 " + date1);

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

//2.全限定类名.class

Class cls2 = java.util.Date.class;

try {

Date date3 = cls2.newInstance();

System.out.println("2 "+date3);

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

Date date3 = cls2.newInstance();

System.out.println("2 "+date3);

//3.Class.forName方法,大写Class

Class cls1 = Class.forName("java.util.Date");

Object date2 = cls1.newInstance();

System.out.println("3 " + date2);

}

}

java .class 实例对象_Java产生Class类的三种实例化对象的方法相关推荐

  1. java i o中文版_Java文件I/O的三种方法

    摘要:之前在面试中被问到过两次Java中文件读入输出怎么写,当时只记得一个大概,没有办法很清晰的说出一个条理,今天特地看出总结了一下这方面的内容,想要写出来给大家分享.首先文件读入输出流常用有三种:F ...

  2. java 数组 源码_Java数组转List的三种方式及对比

    来源:https://s.yam.com/6wu6n 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳 ...

  3. java 如何初始化数组_java中初始化数组的三种方式分别是什么

    三种初始化方式: 1.静态初始化:创建+赋值 2.动态初始化:先创建再赋值 3.默认初始化:创建之后若不赋值则会被赋对应数据类型的默认值 (视频教程推荐:java视频) 我们来看一下具体代码:publ ...

  4. c++三种实例化对象方式

    1.隐式创建 首先我们定义一个测试类 class Person {private:int age;string name;public:Person() {cout<<"this ...

  5. Java实现pdf转图片的工具类(三种方法实现PDF转图片的案例)【亲测可用】

    提示:有些时候我们需要在项目中展示PDF,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好.Java使用各种技术将pdf转换成图片格式,并且内容不失帧.清晰可见,该工具类也是开发中常用到的 ...

  6. java 文件追加文本_Java追加文件内容的三种方法

    importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileOutputStream;importjava.io.FileWri ...

  7. java生产者消费者流程图_Java 生产者消费者模型的三种实现过程

    生产者一边在生产,消费者一边消耗.当库存满的时候生产者暂停生产,直到有空位:当库存空的时候消费者暂停消费,直到有产品. 关键点: 生产者和消费者都是在不断生产和消费的,是同时并发的,不应该等满了再消费 ...

  8. C++的三种实例化对象方式

    一.隐式创建 class CEmployee { private: int age; int id; public: CEmployee() { cout << "这是构造函数& ...

  9. java 不知道类名_Java 中获取类名的三种方法,你知道几种?

    之前我们分享过Java高级篇--深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法. 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里 ...

最新文章

  1. 在c#.net通用权限管理系统组件里的 部门经理,分管副总 的管理方法参考
  2. Android中三种常用解析XML的方式(DOM、SAX、PULL)简介及区别
  3. Array.from()
  4. Celery-------项目目录
  5. WPF 右下角弹窗的简单实现
  6. linux 命令行 解密,解密Linux终端命令 学好Linux
  7. C++单例模式:单例模式遇到多线程
  8. 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?
  9. ajax请求去获取base64_前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax...
  10. Matlab 阶乘factorial
  11. Jmeter生成HTML性能测试报告
  12. 如何获取Android应用签名?
  13. Android集成华为Push及注意事项
  14. 跟进分析不一样的MTI商城
  15. 重庆ETC学员“食神大赛”
  16. ACM——01——1003: 【入门】求任意三位数各个数位上数字的和 【运算符】
  17. 【调研】成功的IT公司的老板几乎都是技术出身
  18. tp5微信公众号开发(2) ---- 微信被动回复,图文回复,图片回复等 demo实例
  19. 计算机怎么连不上打印机,电脑和打印机连接不上怎么回事
  20. 15款jQuery幻灯片插件

热门文章

  1. Android Device Monitor 文件管理的常见问题
  2. 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(上)
  3. 伟福6000微型计算机,伟福6000仿真软件
  4. python封装第三方接口_PYTHON 实现 SIGN 签名: 用于提供给外部(第三方) 做系统对接...
  5. php删除下拉框记录,删除一条数据_php删除一条记录(删除确认提示)
  6. 集群起不来oracle,Oracle11g rac 集群无法启动分析及处理
  7. Vue报错,[WDS] Disconnected!
  8. 汇编 第二章 寄存器
  9. 第一次作业:对于Linux2.6.0源码中进程模型的分析
  10. oracle去掉重复记录语句