为了账号安全,请及时绑定邮箱和手机立即绑定

在java中使用.properties文件中的引用合并字符串

在java中使用.properties文件中的引用合并字符串

四季花海 2022-06-04 17:05:07
我的代码:public static InputStream input = null;public static Properties prop = new Properties();static public void getConstants(){     Constants constants = new ConstantsEng();    try {        input = CLASS_NAME.class.getClassLoader().getResourceAsStream("FILE_NAME.properties");        prop.load(input);    } catch (IOException e) {        e.printStackTrace();    }public static String SOURCE = prop.getProperty("SOURCE");public static String SOURCES = prop.getProperty("SOURCES");public static String DESTINATION = prop.getProperty("DESTINATION");public static String DESTINATIONS = prop.getProperty("DESTINATIONS");FILE_NAME.propertiesSOURCE=SourceSOURCES=${SOURCE}sDESTINATION=DestinationDESTINATIONS=${DESTINATION}s字符串在渲染时显示占位符:我想在我的 .properties 文件中重用字符串,但这段代码不起作用。有没有办法解决它,还是我犯了一个错误?当我取:public static String SOURCES = prop.getProperty("SOURCES");我期待“来源”作为输出。
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您是否考虑过使用 Apache 的commons-configuration?


要添加的依赖项pom.xml


<dependency>

    <groupId>commons-configuration</groupId>

    <artifactId>commons-configuration</artifactId>

    <version>1.6</version>

</dependency>

你的课会像


import org.apache.commons.configuration.CompositeConfiguration;

import org.apache.commons.configuration.ConfigurationException;

import org.apache.commons.configuration.PropertiesConfiguration;


public class Configurations {

    private CompositeConfiguration config;


    public void getConstants() throws ConfigurationException {

        config = new CompositeConfiguration();

        config.addConfiguration(new PropertiesConfiguration("test.properties"));

    }


    public CompositeConfiguration getConfig() {

        return config;

    }


    public static void main(String... args) throws ConfigurationException {

        Configurations config = new Configurations();

        config.getConstants();


        System.out.println(config.getConfig().getString("SOURCE"));

        System.out.println(config.getConfig().getString("SOURCES"));

    }

}

测试属性


SOURCE=Source

SOURCES=${SOURCE}s

DESTINATION=Destination

DESTINATIONS=${DESTINATION}s


查看完整回答
反对 回复 2022-06-04
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

您可以在属性文件中使用“%s”进行字符串组合:

SOURCE=Source
SOURCES=%ss

然后,您必须格式化字符串:

public static String SOURCES = String.format(prop.getProperty("SOURCES"), prop.getProperty("SOURCE"));



查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 275 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信