案例:根据配置文件,实例化对象

src下创建一个“配置文件”config.txt,内容如下:

className=ahjava.p07reflect.Cat
package ahjava.p07reflect;
import java.io.FileReader;
import java.lang.reflect.Constructor;
import java.util.Properties;
class Cat {
public Cat() {
System.out.println("Cat构造");
}
public Cat(String name) {
System.out.println("Cat构造:" + name);
}
}
public class T34读取配置造对象 {
public static void main(String[] args) throws Exception {
String className = 读取配置文件();
get构造方法(className);
}
private static String 读取配置文件() throws Exception {
// 读,载,关
Properties p = new Properties();
String _configPath = System.getProperty("user.dir") + "\\src\\ahjava\\" + "config.txt";
FileReader fr = new FileReader(_configPath);
p.load(fr);
fr.close();
// 获取属性
String str = p.getProperty("className");
return str;
}
private static void get构造方法(String className) throws Exception {
Class<?> c = Class.forName(className);
// 获取构造
Constructor<?> constr = c.getConstructor();
// 实例化对象
Object o = constr.newInstance();
System.out.println(o);
// 获取带参构造方法,并实例化对象
constr = c.getConstructor(String.class);
o = constr.newInstance("Tiger");
System.out.println(o);
}
}
Cat构造
ahjava.p07reflect.Cat@15db9742
Cat构造:Tiger
ahjava.p07reflect.Cat@6d06d69c

Java反射——根据配置文件,实例化对象的更多相关文章

  1. Java 反射 分析类和对象

    Java 反射 分析类和对象 @author ixenos 摘要:优化程序启动策略.在运行时使用反射分析类的结构和对象 优化程序启动策略 在启动时,包含main方法的类被加载.它会加载所有它需要的类. ...

  2. Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class<T> java.lang.reflect.Constructor<T> java.lang.reflect.Fi ...

  3. Java基础之创建实例化对象的方式

    Java中创建(实例化)对象的五种方式  1.用new语句直接创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3 ...

  4. 深入分析Java反射(五)-类实例化和类加载

    前提 其实在前面写过的<深入分析Java反射(一)-核心类库和方法>已经介绍过通过类名或者java.lang.Class实例去实例化一个对象,在<浅析Java中的资源加载>中也 ...

  5. java反射之获取枚举对象

    项目中导入大量枚举对象,用来定义常量.随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求. public enum ExamType { CRAFT(1, "草稿" ...

  6. Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)

    反射技术其实就是动态加载一个指定的类,并获取该类中的所有内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员,简单来说:反射技术可以对一个类进行解剖,反射大大增强 ...

  7. Java反射获取类和对象信息全解析

    反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题. 在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了. 获取类对象 Class.f ...

  8. Java反射 - 1(得到类对象的几种方法,调用方法,得到包下的所有类)

    通过反射获得对象的方法 准备工作: 有一个User类如下 package o1; /** * Created by yesiming on 16-11-19. */ public class User ...

  9. 通过java反射机制,获取对象的属性和值(包括所有继承的父类)

    java的反射机制提供了两种方法: getDeclaredFields() :该方法能获取到本类的所有属性,包括private,protected和public,但不能获取到继承的父类的属性. get ...

随机推荐

  1. 编写shell脚本的规范

    目录 编写shell脚本的一些规范 解释器 添加脚本版本和注释功能 添加脚本调试 变量命名 全局变量和局部变量 命名规范 函数命名 脚本命名 函数 引用模块或文件 脚本日志 配置文件 其他 编写she ...

  2. Kubernetes Controller详解

    运行容器化应用是Kubernetes最重要的核心功能.为满足不同的业务需要,Kubernetes提供了多种Controller,主要包括Deployment.DaemonSet.Job.CronJob ...

  3. curl 錯誤碼

    CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议 未支持的协议.此版cURL 不支持这一协议. 2 初始化代码失败 初始化失败. 3 URL格式不正确 URL 格式错误.语法不 ...

  4. Flutter 1.22版本新增的Button

    Flutter 1.22版本新增了3个按钮,TextButton.OutlinedButton.ElevatedButton,虽然以前的Button没有被废弃,但还是建议使用新的Button. 为什么 ...

  5. 模板——Fhq_treap

    $Fhq$ $treap$ #include <bits/stdc++.h> using namespace std; const int MAXN=100100; int n,root, ...

  6. Youtube订阅——解决在弹窗内使用Youtube订阅按钮高度显示不全的问题

    背景:公司网站业务在做海外营销网站,为了配合营销工作,前端总要在各种地方添加各种社媒订阅(摊手.jpg):最近遇到的是在弹窗内展示公司的Youtube账号的订阅按钮. 理想:我想使用的例子是这样的: ...

  7. TODO_LIST

    H5 blog: http://html5doctor.com/designing-a-blog-with-html5/ 绝尘单词本----H5+Web NIO+netty+RPC

  8. sendfile zero-copy

    传统read/write进行网络文件传输过程当中,文件数据实际上经过四次copy操作: 硬盘->内核buf->用户buf->socket相关缓冲区->协议引擎 而sendfil ...

  9. html的height:100%;高度是多少

    html的height:100%;高度是多少 html设置height:100%;表示一屏高度,类似于100vh.未设置则根据子元素的高度来自适应高.在实际应用中,设置页面高度为1屏幕高度通常设置: ...

  10. jupyter使用自动补全和切换默认浏览器

    自动补全 可以做conda环境中执行以下命令.linux下打开conda环境的命令是: conda activate 退出conda环境的命令是: conda deactivate 安装插件: pip ...