JavaSE-反射-获取类或者对象的四种方法
1、使用Class类的静态方法Class.forName("xxxx");
新建一个要想要获取的类
package org.burning.sport.javase.classloader;
public class ClassLoaderModel {
}
package org.burning.sport.javase.classloader; /**
* 类的载入方式
*/
public class ClassLoaderMain {
public static void main(String[] args) { ClassLoaderMain clm = new ClassLoaderMain();
//1.使用Class静态方法Class.forName
clm.loadClassMethod1();
} public void loadClassMethod1() {
try {
Class<?> clazz = Class.forName("org.burning.sport.javase.classloader.ClassLoaderModel");
ClassLoaderModel clm = (ClassLoaderModel)clazz.newInstance();
System.out.println(clm);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2、使用ClassLoader
package org.burning.sport.javase.classloader; /**
* 类的载入方式
*/
public class ClassLoaderMain {
public static void main(String[] args) {
ClassLoaderMain clm = new ClassLoaderMain();
//2.使用ClassLoader
clm.loadClassMethod2();
} public void loadClassMethod2() {
ClassLoader cl = this.getClass().getClassLoader();
try {
Class<?> clazz = cl.loadClass("org.burning.sport.javase.classloader.ClassLoaderModel");
ClassLoaderModel clm = (ClassLoaderModel) clazz.newInstance();
System.out.println(clm);
} catch (Exception e) {
e.printStackTrace();
}
}
}
3、使用 类.class
package org.burning.sport.javase.classloader; /**
* 类的载入方式
*/
public class ClassLoaderMain {
public static void main(String[] args) {
ClassLoaderMain clm = new ClassLoaderMain();
//3. 使用类.class方式
clm.loadClassMethod3(); } public void loadClassMethod3() {
Class<?> clazz = ClassLoaderModel.class;
try {
ClassLoaderModel str = (ClassLoaderModel)clazz.newInstance();
System.out.println(str);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
4、使用对象的getClass方法
package org.burning.sport.javase.classloader; /**
* Created by lisen on 2017/7/27.
* 类的载入方式
*/
public class ClassLoaderMain {
public static void main(String[] args) {
ClassLoaderMain clm = new ClassLoaderMain();
//4. 使用对象的getClass方法
clm.loadClassMethod4();
} public void loadClassMethod4() {
ClassLoaderModel clm = new ClassLoaderModel();
Class<?> clazz = clm.getClass();
try {
ClassLoaderModel ss = (ClassLoaderModel)clazz.newInstance();
System.out.println(ss);
} catch (Exception e) {
e.printStackTrace();
}
}
}
https://gitee.com/play-happy/base-project
JavaSE-反射-获取类或者对象的四种方法的更多相关文章
- MYSQL获取自增ID的四种方法
MYSQL获取自增ID的四种方法 1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与tabl ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- YSQL获取自增ID的四种方法(转发)
YSQL获取自增ID的四种方法(转发) 1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与t ...
- DBS-MySQL:MYSQL获取自增ID的四种方法
ylbtech-DBS-MySQL:MYSQL获取自增ID的四种方法 1.返回顶部 1. 1. select max(id) from tablename 2.SELECT LAST_INSERT_I ...
- 在Action类中获得HttpServletResponse对象的四种方法
在struts1.xAction类的execute方法中,有四个参数,其中两个就是response和request.而在Struts2中,并没有任何参数,因此,就不能简单地从execute方法获得Ht ...
- Java反射获取类和对象信息全解析
反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题. 在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了. 获取类对象 Class.f ...
- 回忆(一):反射中获得class对象的三种方法
package reflex; /* * 反射:就是通过class文件对象 去使用该文件中的成员 * 变量,构造方法,成员方法. * * Person p = new Person(); p.使用 * ...
- Java遍历Map对象的四种方法
在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...
- ASP.NET Core 释放 IDisposable 对象的四种方法
本文翻译自<Four ways to dispose IDisposables in ASP.NET Core>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! IDispos ...
随机推荐
- 强化学习之Q-learning ^_^
许久没有更新重新拾起,献于小白 这次介绍的是强化学习 Q-learning,Q-learning也是离线学习的一种 关于Q-learning的算法详情看 传送门 下文中我们会用openai gym来做 ...
- hadoop+hive+spark搭建(二)
上传hive软件包到任意节点 一.安装hive软件 解压缩hive软件包到/usr/local/hadoop/目录下 重命名hive文件夹 在/etc/profile文件中添加环境变量 export ...
- Spark 学习笔记大纲
Spark 内核 第28课:Spark天堂之门解密 (点击进入博客)从 SparkContext 创建3大核心对象开始到注册给 Master 这个过程中的源码鉴赏 第29课:Master HA彻底解密 ...
- JAVA中的设计模式三(策略模式)
问题: 如何让算法和对象分开来,使得算法可以独立于使用它的客户而变化? 方案: 把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就 ...
- ionic3 笔记
ionic3的常用命令: //新建项目.ionic start ionic_tab tabs // 新建页面ionic g page NewPage// 查看usb链接的手机adb devices c ...
- python之pyqt4的简单窗口布局以及信号和槽(上代码)
#-*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') from PyQt4 import QtGui ...
- Django—模板渲染
参考文档: http://www.cnblogs.com/fnng/p/4373108.html https://code.ziqiangxuetang.com/django/django-intro ...
- 86、flask之一些凌乱知识点
本篇导航: session组件 上下文与内置函数 pymysql问题 模版问题 一.session组件 1.session组件简介 flask-session是flask框架的session组件,由于 ...
- Django_自带的admin管理页面
Django的admin管理页面非常的好用,接下来就简单的说一下: 首先当你在pycharm中启动django服务端程序之后,在浏览器中输入地址就可以访问 当你输入默认的admin页面,,会弹出来下边 ...
- bzoj4332;vijos1955:JSOI2012 分零食
描述 这里是欢乐的进香河,这里是欢乐的幼儿园. 今天是2月14日,星期二.在这个特殊的日子里,老师带着同学们欢乐地跳着,笑着.校长从幼儿园旁边的小吃店买了大量的零食决定分给同学们.听到这个消息,所有同 ...