`
gaojingsong
  • 浏览: 1155037 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【属性值的各种数据类型转换】

阅读更多

 

 

前提条件,先构造一个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版本
分享到:
评论

相关推荐

    Java的8大基本数据类型.pdf

    eg:1.4E-45 —&gt; 1.4 10^(-45) 数据类型转换必须满⾜如下规则: 数据类型转换必须满⾜如下规则: 1.不能对boolean类型进⾏类型转换 2.不能把对象类型转换成不相关类的对象 3.⼩的数据类型与⼤的数据类型做数值运算时...

    Asp.Net类型转换类(通用类)代码分享

    /// 类型转换类 /// 处理数据库获取字段为空的情况 /// public static class DBConvert { #region------------------ToInt32类型转换------------------ /// /// 读取数据库中字符串并转换成Int32 /// 为...

    C# 类、实体帮助类,类型之间相互转换,类与实体之间相互转换

    C# 类、实体帮助类,类型之间相互转换,类与实体之间相互转换,实体可定义属性数据类型、数据值、作为参数时的名称。 添加引用 using VDaiMa; 查看链接 https://blog.csdn.net/qq_34440417/article/details/89415159...

    ASP.NET2.0服务器控件之类型转换器

    例如,以文本形式表示属性值,将用户输入的文本转换为相应数据类型等等,都应用了类型转换器。 对于多数基本数据类型(如Int32、Bool、Char、String、枚举类型等),.net框架已经为它们提供了默认的类型转换器,这些...

    javascript中的五种基本数据类型

    [0]5种数据类型:  [0.1]基本数据类型:Undefined、Null、Boolean、Number、String  [0.1.1]基本类型值是指简单的数据段,5种基本类型是按值访问的,因为可以操作保存在变量中的实际值  [0.1.2]基本类型的值在...

    c# 程序设计英文课件

    引用变量的静态数据类型和动态数据类型 传值调用与传引用调用 数据转换与类型转换 一维数组、均匀数组、非均匀数组 属性、事件、索引器的定义和使用 异常对象的生成、抛出和捕捉 方法的隐藏和覆盖 接口与显式接口...

    orm获取关联表里的属性值

    对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里...

    ios-轻量级对象字典转换库.zip

    三、自动转换NSNull值,有时候从服务端传来的是空值,这时会根据你定义的属性类型自动转换为合适的值,比如NSString类型的变成@“”,NSArray的变成@[]等,当然你也可以选择对某些自定的属性阻止这一默认行为 ...

    【Python】Pandas中DataFrame基本函数及举例整理

    目录介绍Pandas中DataFrame基本函数整理(全)构造数据框属性和数据类型转换索引和迭代二元运算函数应用&分组&窗口描述统计学从新索引&选取&标签操作处理缺失值从新定型&排序&转变形态Combining& joining&merging...

    sqlite实现登录

    这意味着它的数据类型不具有表列属性 , 而具有数据本身的属性 。 当某个值插入数据库时, SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成列类型。如果不能转换,则该值将作为...

    easy_model:EasyModel提供了数据库无关属性的特性,可以像ActiveRecord一样定义在赋值时进行数据转换的属性。提供定义与数据库无关的属性的能力。可以定义

    easy_model EasyModel 提供了数据库独立属性的特性。...当您为由 `column` 方法定义的属性赋值时,值将转换为属性的数据类型(如 ActiveRecord)。 login_form = LoginForm . new ( :member_no =&gt; '1234567

    解决Java中由于数据太大自动转换成科学计数法的问题

    今天小编就为大家分享一篇解决Java中由于数据太大自动转换成科学计数法的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    汇编语言教程

     3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器组  2 通用寄存器的作用  3 专用寄存器的作用  2.2 存储器的管理模式  1 16位微机的内存管理模式  2 32位微机的内存管理...

    java与c++交互(JNI学习笔记)

    1.C++与java交互基本介绍 2.C++获取java属性值、设置java属性值 3.C++创建java对象 4.C++中数据类型间的转换

    SQl 函数说明大全

    3.转换函数 将值从一种数据类型转换为另一种。 4.加密函数 支持加密、解密、数字签名和数字签名验证。 5.游标函数 返回有关游标状态的信息。 6.日期和时间函数 可以更改日期和时间的值。 7.数学函数 执行三角、几何...

    Javascript 类型转换方法

    Javascript (ECMA Script)是一种弱类型的语言。这并不意味着它没有数据类型,只是变量或者Javascript对象属性不需要一个特定类型的值分配给它或者它始终使用相同的值。

    异构数据集挖掘框架-研究论文

    聚类算法试图根据对象的属性值识别相似的对象组。 这些算法假定属性为同类类型,或转换为同类类型。 在现实世界中,数据集通常具有异构性质。 如果这些数据被转换,则会导致信息丢失。 本文提出了一种具有统一相似...

    数据分析中的数据探索.docx

    这个问题大多数情况还是可以批量解决的,像数据类型转换,字符串的规范化,遇到城市和邮编的这种状况也可以用对应的邮编列表来更正 数据分析中的数据探索全文共4页,当前为第2页。数据分析中的数据探索全文共4页,...

    CASS数据属性转入ArcGis终极战略(AutoCAD插件实现)

    在AutoCAD或者CASS数据向ArcGis数据转换过程中,您是否还在为自己录入的属性无法转出而烦恼?是否仍因转出的字段名称、类型、长度、缺省值不符合要求而苦闷?是否还在因规范对要素属性结构的定义变化无常而纠结? ...

    地理信息系统基础:空间数据结构.ppt

    四、栅格代码(属性值)的确定 1、中心点法:用处于栅格中心的地物类型决定栅格代码。 2、面积占优法:以占栅格最大面积的地物类型决定栅格代码。 ?3、重要性法:选取最重要的地物类型决定栅格单元代码。 5、长度占...

Global site tag (gtag.js) - Google Analytics