当前位置: 首页 > news >正文

凡科代理建站登录网络推广专员岗位职责

凡科代理建站登录,网络推广专员岗位职责,wordpress积分,佛山网站建设科技公司需求 对象的相关信息存储在javabean.properties文件中,通过读取properties文件中的信息,实例化对象,要求程序不能硬编码,即程序可以通用,针对不同的对象,都可以实例化。仅需修改配置文件,不需要…

需求

对象的相关信息存储在javabean.properties文件中,通过读取properties文件中的信息,实例化对象,要求程序不能硬编码,即程序可以通用,针对不同的对象,都可以实例化。仅需修改配置文件,不需要更改代码。
在这里插入图片描述

实现代码

import java.io.FileReader;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.Properties;/*** 实例化对象*/
public class AddInstance {public static void main(String[] args) throws Exception {// 读取本地javabean.propertiesProperties properties = new Properties();properties.load(new FileReader("C:\\Users\\1\\IdeaProjects\\javaSE\\javabean.properties"));// 根据javabean.properties中的className值获取对应的字节码对象Class className = Class.forName((String) properties.get("className"));// 获取构造器Constructor constructor = className.getConstructor();// 获取实例化对象Object obj = constructor.newInstance();// 获取所有的变量对象Field[] fields = className.getDeclaredFields();// 遍历变量对象for (Field field : fields) {// 分割变量对象,需要注意”.“需要转义String[] split = (field.toString()).split("\\.");// 获取属性名String attribute = split[split.length - 1];// 将属性的访问设置为truefield.setAccessible(true);// 定义Object对象Object o;// 如果该对象的某个属性是int类型if (field.getType() == int.class) {// 将从javabean.properties中获取到的对应的该值转为Integer类型o = Integer.parseInt((String) properties.get(attribute));} else {// 不是int类型,直接将取出javabean.properties中的值o = properties.get(attribute);}// 写入field.set(obj, o);}System.out.println("通过配置文件创建了对象,并赋值结果是:" + obj);}
}

在这里插入图片描述在这里插入图片描述

需要注意以下两点:
(1)获取javaBean的属性对象后,用“.”(点)进行分割时,需要转义,即“\\.”,不然分割不出效果

	System.out.println("------------------------------------------------------------");System.out.println(field.toString());String[] split = (field.toString()).split("\\.");System.out.println(Arrays.toString(split));String[] split1 = (field.toString()).split(".");System.out.println(Arrays.toString(split1));

在这里插入图片描述

(2)因为从properties文件中读出来的值都是字符串的,所以在写入对象值时需要判断,即判断对象的该属性(比如)是int类型,则把从properties中读取出来的该属性的值转为int类型

	// 如果该对象的某个属性是int类型if (field.getType() == int.class) {// 将从properties.properties中获取到的对应的该值转为Integer类型o = Integer.parseInt((String) properties.get(attribute));} else {// 不是int类型,直接将取出properties.properties中的值o = properties.get(attribute);}

总结和分析

通过反射和读取本地配置文件的方式来实例化对象,看似避免了“硬编码”,实例化不同对象不需要更改代码。但是,仍有以下几点麻烦之处:
(1)实例化不同的对象,需要更改配置文件的className值,即需要实例化javaBean的全类名;
(2)另外,如果javaBean属性中有非字符串类型的,则需要增加判断
(3)而且如果多个javaBean的实例化信息存放在properties内,不免会出现属性重复的情况。比如Person类有name属性,User类也有name属性,这时就需要创建多个properties文件,不免有些麻烦。

http://www.dinnco.com/news/56570.html

相关文章:

  • 湘潭做网站价格问下磐石网络策划书模板
  • 建立个人网站费用网络营销策略理论有哪些
  • 郑州小型网站制作公司资源企业网站排名优化价格
  • 提供东莞微信网站建设站长统计app软件下载官网安卓
  • 网站后台怎么站长之家查询域名
  • 重庆一品建设集团有限公司网站sem培训班学费哪个好
  • 大型企业网站制作seo基础知识培训
  • 做网站大概费用服务器租用
  • 自己做网站转发新闻违法么免费网站推广软件哪个好
  • 荔湾做网站公百度2022年版本下载
  • 国内域名网站有那些semester怎么读
  • 视屏网站制作网站制作出名的公司
  • 网上订餐网站模板百度热搜大数据
  • 黄金网站app大全3dm手游百度网页版入口链接
  • 谷歌seo什么意思最好的优化公司
  • 安徽网新科技有限公司搜索引擎推广和优化方案
  • 网站建设类论文爱站关键词搜索
  • 百度上开个网站怎么做网站优化关键词价格
  • 金水郑州网站建设播放量自助下单平台
  • wordpress多站点数量百度联盟注册
  • 建网站花费搜索热度和搜索人气
  • 整合wordpress和discuzseo是什么的
  • 免费活动策划方案的网站seo公司多少钱
  • 精美网站制作公司石家庄最新疫情
  • 淮安哪里有做网站的100个免费推广b站
  • 广东网站建设定制乐陵seo外包
  • 建站目的域名免费查询
  • 山东网站建设哪家公司好班级优化大师头像
  • 贵阳网站建设hsyunso搜狗搜索引擎入口
  • 网站建设员工分工电商网站开发平台有哪些