java+boolean+属性,java – 从属性中获取int,float,boolean和string

如果您有一类配置值,例如常量类,并且要从配置(属性)文件加载所有值,则可以创建一个小帮手类并使用反射:

public class ConfigLoader {

public static void load(Class> configClass, String file) {

try {

Properties props = new Properties();

try (FileInputStream propStream = new FileInputStream(file)) {

props.load(propStream);

}

for (Field field : configClass.getDeclaredFields())

if (Modifier.isStatic(field.getModifiers()))

field.set(null, getValue(props, field.getName(), field.getType()));

} catch (Exception e) {

throw new RuntimeException("Error loading configuration: " + e, e);

}

}

private static Object getValue(Properties props, String name, Class> type) {

String value = props.getProperty(name);

if (value == null)

throw new IllegalArgumentException("Missing configuration value: " + name);

if (type == String.class)

return value;

if (type == boolean.class)

return Boolean.parseBoolean(value);

if (type == int.class)

return Integer.parseInt(value);

if (type == float.class)

return Float.parseFloat(value);

throw new IllegalArgumentException("Unknown configuration value type: " + type.getName());

}

}

那么你这样称呼:

ConfigLoader.load(Constants.class, "/path/to/constants.properties");

您可以扩展代码来处理更多类型。您还可以将其更改为忽略缺少的属性,而不是像现在那样失败,因此字段声明中的赋值将保持不变,即默认值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么笔记本电脑好用_苹果笔记本好用吗?苹果笔记本怎么样?

阅读本文前,请您先点击上面的蓝色字体“科技论吖”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注!苹果笔记本好用吗苹果笔记本好用吗?用苹果电脑最大的好处就…

python将文本文件加密后输出_Python:将Casear密码和柱状转置密码的加密输出写入.txt文件...

我希望这很容易解决 . 我使用Python在Windows Powershell中获得的错误如下:Traceback (most recent call last): File "[filename.py]", line 66, in main(ciphertext) NameError: name ciphertext is not defined我的代码:def main():# ciphe…

mui请求php,PHP 怎样处理mui.ajax POST过来的数据?

处理登录*/var doLoginfunction(){plus.nativeUI.showWaiting("登陆中...");if(document.getElementById("tel").value && document.getElementById("pass").value){var teldocument.getElementById("tel").value;var passhex…

apple ii 模拟器 mac_苹果自研芯片Mac价格曝光

11月3日凌晨,苹果又在官网宣布了今年秋季的第三场新品发布会将在北京时间2020年11月11日凌晨2点举行,这次发布会预计会带来搭载苹果自研Apple Silicon芯片的Mac产品。彭博社的报道显示,这次的新品发布会将会推出三款产品,分别是13…

python rpa_(RPA学习)Python 之 Pathlib 模块

原标题:(RPA学习)Python 之 Pathlib 模块艺赛旗 RPA9.0全新首发免费下载 点击下载http://www.i-search.com.cn/index.html?fromline9读文件和写文件在我们使用 open 来操作文件读写操作的时候, 不仅可以使用字符串格式的路径,对于 pathlib 生成的路径完…

win10文件夹加密_(十六)小众但好用:免费开源免注册的同步盘加密工具 Cryptomator...

之前写过同步盘加密工具 boxcryptor,今天给大家推荐另一款开源免费多平台的同步盘加密工具 Cryptomator。节省时间,直接开始。Cryptomator 官方网站:点击这里首先简单对比一下 Cryptomator 和 boxcryptor。Cryptomator 加密原理和 boxcryptor…

iis7 php5 isapi配置,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程

说到PHP环境配置与安装,通常以Apache搭载PHP配置为主,随着PHP版本不断更新,对Windows IIS平台的支持也越来越好,在Windows IIS平台上配置安装PHP环境也越来越方便。  在完成Windows 7上搭建ApachePHPMysql环境搭建后&#xff0c…

simulink仿真及代码生成技术入门到精通_Simulink仿真零基础入门到精通实用教学教程 自学全套...

Simulink仿真零基础入门到精通实用教学教程 自学全套,以教程文字为主,毕业论文和报告均可以借鉴。Simulink是电气工程必学的模型仿真专业工具软件,非常的实用。小编在全网中搜索都没有找到非常系统的学习教程和教材,想学习却找不到…

plupload怎么设置属性_店铺收银系统怎么用?好收银系统能提升店铺效率

经营一家店铺,无论是小型便利店还是大型超市,都少不了使用收益系统,那么常用的店铺收银系统要怎么用呢?店铺收银系统怎么用一款好用的收银系统,是可以起到提升店铺首页效率的,现在信息时代,不少收银系统开…

php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

CTF中常见php-MD5()函数漏洞1.数字与字符串之间的比较var_dump( 0 "a" );var_dump( "0" "a" );第一个返回的是 true ,第二个返回的是 false因为php把字母开头的转化为整型时,转化为0, 前面数字后面字母的话就…

spring 2.0核心技术与最佳实践 pdf_推荐 Spring Boot 实践学习案例大全 数据缓存 和中间件 安全权限...

概况spring boot 实践学习案例spring boot 初学者及核心技术巩固的最佳实践目录『 Spring Boot 2 快速教程 』Spring Boot 2:WebFlux集成 ThymeleafSpring Boot 2:WebFlux集成 MongodbSpring Boot 2:WebFluxRestfulCRUD实践Spring Boot 2&…

python进阶-Python 进阶用法 (持续更新)

装饰器(Decorator) Python 的装饰器是任何可调用对象(callable object),用于修改函数(Function)或类(Class)。按照用途可分为: 函数装饰器 类装饰器 装饰器的…

aws php mysql,AWS快速搭建nginx+php+mysql

yum -y install nginxyum -y install php71yum -y install php71-fpm php71-cli php71-common php71-gd php71-devel php71-pdo php71-mysql php71-mbstringyum -y install mysql-server mysql-develnginx php做服务,在高并发的时候会出现一些错误 connect() to…

python中的字典和集合_Python 字典和集合

字典的每个键值对用冒号分割,键值对之间用逗号分隔,所有键值对包括在{}中。d {key1 : value1, key2 : value2 }键必须是唯一的,值可以不唯一。值可以取任何数据类型,但键必须是不可变对象,如字符串,数字或…

centos 8 kubernetes安装详解_8方面图文详解,电气安装工程施工工艺!

八方面图文解读电气安装工艺控制标准1盘、台、开关柜安装2电缆桥架施工3电缆敷设及接线施工4架空线及设备跳线施工5电力变压器安装6电气母线安装7防火封堵施工8成品保护意识一、盘、台、开关柜安装工艺控制标准1.1按设计图纸并根据厂家资料、尺寸误差要求制作盘底座。1.2立盘的…

python与人工智能应用锁_linux应用锁的搜索结果-阿里云开发者社区

Linux中的spinlock和mutexLinux中的spinlock和mutex作者digoal日期2016-11-09标签PostgreSQL , Linux , spin lock , mutex , 自旋锁 , 抢占锁背景最近在压测PostgreSQL同步流复制时,遇到一个mutex锁的瓶颈问题。具体见 《PostgreSQL 同步流复制锁瓶颈分析》PG是以b…

hfss和matlab,hfss和MATLAB联合仿真

hfss中仿真太费时间,而且是在做优化,能否进行hfss和matlab联合仿真,利用模拟退火算法缩短仿真时间?可能我的问题描述的不是特别清楚,我不是想要具体的解决方案,只希望有相关资料的人能提供给小弟一点资料,…

c++代码健壮性_复活Navex-使用图查询进行代码分析(上)

从了解到修复 Navex, 其中花了一年多, 从对自动化代码审计一无所知到学习PL/Static Analysis, 翻阅十几年前的文档, 补全Gremlin Step, 理解AST, CFG, DDG, PDG, CPG, 也感谢z3r0yu师傅和Gaba哥的的交流指导.本文重点在于静态分析 Joern-图查询部分, 后面的动态分析自动生成EXP…

公文字体字号标准2020_一文了解公文格式规范,图文并茂(建议收藏备用)

本方法根据《党政机关公文格式国家标准》(GB/T9704-2012)制定。具体内容如下:一、办公软件要求适用于微软OFFICE—WORD文字处理软件。二、页面设置1.选择“文件”——“页面设置”选择“页边距”附签,上:3.7厘米,下:3.…

360浏览器卸载_无法卸载?Win10 强推新 Edge 浏览器,来教你如何干掉它

8月17日消息,相信不少更新了 Windows 10 v2004 版本的用户都已经发现,系统默认浏览器已经自动更新为基于 Chromium 打造的全新 Edge 浏览器,虽然该浏览器已经一跃成为全球第二大桌面浏览器,但却仍然有不少用户反馈不好用。撰文 | …