前提条件,先构造一个properties文件
Properties properties = new Properties();
// 使用ClassLoader加载properties配置文件生成对应的输入流
InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties");
// 使用properties对象加载输入流 ,注意最后释放资源关闭文件流
properties.load(in);
代码详解
/** * get property value * * @param key property name * @return property value */ public static String getString(String key) { return properties.getProperty(key.trim()); } /** * get property value with upper case * * @param key property name * @return property value with upper case */ public static String getUpperCaseString(String key) { return properties.getProperty(key.trim()).toUpperCase(); } /** * get property value * * @param key property name * @param defaultVal default value * @return property value */ public static String getString(String key, String defaultVal) { String val = properties.getProperty(key.trim()); return val == null ? defaultVal : val; } /** * get property value * * @param key property name * @return get property int value , if key == null, then return -1 */ public static int getInt(String key) { return getInt(key, -1); } /** * * @param key key * @param defaultValue default value * @return property value */ public static int getInt(String key, int defaultValue) { String value = getString(key); if (value == null) { return defaultValue; } try { return Integer.parseInt(value); } catch (NumberFormatException e) { logger.info(e.getMessage(),e); } return defaultValue; } /** * get property value * * @param key property name * @return property value */ public static boolean getBoolean(String key) { String value = properties.getProperty(key.trim()); if(null != value){ return Boolean.parseBoolean(value); } return false; } /** * get property value * * @param key property name * @param defaultValue default value * @return property value */ public static Boolean getBoolean(String key, boolean defaultValue) { String value = properties.getProperty(key.trim()); if(null != value){ return Boolean.parseBoolean(value); } return defaultValue; } /** * get property long value * @param key key * @param defaultVal default value * @return property value */ public static long getLong(String key, long defaultVal) { String val = getString(key); return val == null ? defaultVal : Long.parseLong(val); } /** * * @param key key * @return property value */ public static long getLong(String key) { return getLong(key,-1); } /** * * @param key key * @param defaultVal default value * @return property value */ public double getDouble(String key, double defaultVal) { String val = getString(key); return val == null ? defaultVal : Double.parseDouble(val); } /** * get array * @param key property name * @param splitStr separator * @return property value through array */ public static String[] getArray(String key, String splitStr) { String value = getString(key); if (value == null) { return new String[0]; } try { String[] propertyArray = value.split(splitStr); return propertyArray; } catch (NumberFormatException e) { logger.info(e.getMessage(),e); } return new String[0]; } /** * * @param key key * @param type type * @param defaultValue default value * @param <T> T * @return get enum value */ public <T extends Enum<T>> T getEnum(String key, Class<T> type, T defaultValue) { String val = getString(key); return val == null ? defaultValue : Enum.valueOf(type, val); } /** * get all properties with specified prefix, like: fs. * @param prefix prefix to search * @return all properties with specified prefix */ public static Map<String, String> getPrefixedProperties(String prefix) { Map<String, String> matchedProperties = new HashMap<>(); for (String propName : properties.stringPropertyNames()) { if (propName.startsWith(prefix)) { matchedProperties.put(propName, properties.getProperty(propName)); } } return matchedProperties; } 代码来自dolphinscheduler的1.36版本
相关推荐
总的来说,C++的数据类型转换是一门深奥的学问,熟练掌握各种转换方法是成为一名合格的C++程序员的关键。在编写程序时,应始终注意类型安全,避免不必要的类型转换,特别是那些可能导致数据丢失或错误的转换。通过...
在IT领域,特别是针对软件开发中的编程语言,如VC(Visual C++),数据类型的使用与转换是基础且关键的一部分。本文将深入解析VC中常用数据类型及其...希望本文能够帮助开发者们在数据类型转换这一环节上更加游刃有余。
在Struts2中,数据类型转换器是一个关键组件,它负责将HTTP请求参数转换为Action类中的属性类型,以供业务逻辑处理。这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们...
JavaScript是一种动态类型的编程语言,它的数据类型转换是其核心特性之一。在JS中,有七种内置的数据类型:Undefined、Null、Boolean、Number、BigInt、String和Symbol(ES6新增)。此外,还有一种特殊的类型——...
### Struts2 数据类型转换详解 #### 一、引言 在Web开发中,特别是使用Struts2框架进行开发时,数据类型转换是一项至关重要的功能。由于Web应用程序的基础通信协议HTTP仅支持字符串形式的数据传输,因此,服务器端...
在C++编程中,数据类型转换是至关重要的概念,它允许程序员在不同数据类型之间进行灵活的操作。C++提供了多种方式来实现数据类型的转换,这使得我们能够在必要时改变变量的存储格式或处理精度。本篇文章将深入探讨...
以下是对数据类型转换的详细阐述: 1. 基本数据类型:在大多数编程语言中,数据类型主要分为整型(如int)、浮点型(如float)、字符型(如char)、布尔型(如bool)和字符串型(如string)。这些类型各有其存储和...
- **const_cast**:用于去除或添加`const`或`volatile`属性,但不能改变基本数据类型。 - **static_cast**:适用于类层次结构间的指针转换,以及在有继承关系的对象之间转换。也用于基础类型间的无损转换。 - **...
总结起来,SpringMVC的数据绑定和数据类型转换功能极大地提高了开发效率,减少了代码量,并且提供了强大的灵活性,能够适应各种复杂的Web应用场景。通过理解并熟练运用这两个概念,开发者可以更好地利用SpringMVC...
【标题】:将 JSON 转换为易语言自定义数据类型的实现方法 【描述】:本文档将详细介绍如何将 JSON 数据转换成易语言的自定义数据类型,并提供了一个示例软件供参考。通过这个方法,可以自动化地将 JSON 对象映射到...
例如,从较小的数据类型(如int)转换为较大的数据类型(如long或double)是安全的,因为较大的类型可以容纳较小类型的所有值。但要注意,从大类型转换为小类型可能会导致数据溢出,需要谨慎处理。 2. 显式类型转换...
Access数据库管理系统中,数据类型转换是非常关键的概念,用于在不同数据类型之间进行转换,确保数据的准确性和适用性。在Access中,数据类型包括布尔型(Boolean)、整型(Integer)、长整型(Long)、货币型...
以上内容详细解释了VC中数据类型转换的各种方面,包括不同的转换方法、注意事项以及潜在的问题。通过深入理解和熟练运用这些转换技巧,开发者能够编写更加健壮和高效的代码。在实际编程过程中,一定要谨慎处理数据...
在讨论Matlab数据类型与.NET数据类型转换的过程中,首先需要了解Matlab和.NET都是重要的编程和软件开发平台。Matlab以其矩阵运算和强大的数值分析能力著称,广泛应用于工程计算、算法开发等领域。而.NET则是由微软...
在实际应用中,强制类型转换函数可以用于解决许多问题,例如将基本数据类型转换为其他类型、将基类指针转换为子类指针、将void指针转换为目标类型的指针等。但是,需要注意的是,强制类型转换函数可能会带来一些风险...
除了基本的数据类型转换外,IDA还允许用户自定义更多的数据类型转换。这可以通过“Options”菜单中的“Setup data types”命令来实现。 **步骤说明**: - 打开“Options”菜单。 - 选择“Setup data types”命令。 ...
通过以上两种方法,我们可以有效地从复杂的数据结构中获取所需的属性值。选择哪种方式取决于具体的需求和项目的现有技术栈。`JSON.NET`因其强大的功能和优秀的性能,在大多数情况下会是更优的选择。但在一些简单场景...
在实际编程中,理解数据类型转换和装箱、拆箱的概念非常重要,因为它们直接影响程序的性能和内存使用。例如,不适当的装箱和拆箱操作可能会导致不必要的内存分配和垃圾回收,降低程序效率。因此,开发者应谨慎使用...
在C#编程语言中,数据类型转换是编程过程中不可或缺的一部分,尤其在处理不同大小和范围的数据类型时。本文主要探讨了C#中的数据类型转换,包括装箱、拆箱以及不同数据类型的别名。 装箱和拆箱是C#中处理值类型(如...