Java 使用值初始化属性对象

Java 使用值初始化属性对象,java,properties,Java,Properties,用值初始化Properties对象以替换以下代码的最短方法是什么 Properties properties = new Properties(); properties.put("key1", "value1"); properties.put("key2", "value2"); properties.put("key3", "value3"); 我在创建单元测试时遇到了这个问题,因此代码不需要处理很多条目,3-5就足够了。从文件加载对于许多用例来说都是一个很好的解决方案,但是需要一些简单

用值初始化Properties对象以替换以下代码的最短方法是什么

Properties properties = new Properties();
properties.put("key1", "value1");
properties.put("key2", "value2");
properties.put("key3", "value3");

我在创建单元测试时遇到了这个问题,因此代码不需要处理很多条目,3-5就足够了。从文件加载对于许多用例来说都是一个很好的解决方案,但是需要一些简单易用的解决方案,这需要最少的努力。

虽然我认为您在问题中使用的properties.put方法需要最少的努力,但是如果看起来更容易,您可以使用以下方法(我们将其用于粘贴某些文件中的键=值对的情况,intellij在粘贴多行时会添加\n)


编辑使用字符集ISO_8859,感谢dnault指出它

我意识到这是一篇老文章,但它是在我搜索其他内容时出现的,所以我想如果它出现在我身上,可能会出现在其他人身上。正如之前的海报所说,Java是一个冗长的局域网语言,但也有一些方法可以在不降低可理解性或增加复杂性的情况下降低它的可理解性。这不是一句“一行”,但它相当容易阅读/理解

import java.util.Map;
import static java.util.Map.entry;
...
Properties props = new Properties();
props.putAll(Map.ofEntry(
    entry("key1", value1),
    entry("key2", value2), 
    entry("key3", value3)
));

你所拥有的有什么问题吗?@ScaryWombat没什么,只是想也许这可以用一行来完成。更重要的是编码很容易理解和理解maintain@ScaryWombat不能不同意。怎么了?四行,这就是错的地方!有时与其他语言一起工作有助于理解Java的详细程度。例如,这是h如何在Objective-C:@{“key1”:@“value1”,“key2”:@“value2”,“key3”:@“value3”)中表达类似的构造。不幸的是,我也在查找,但找不到任何简洁的Java表达式。如果确实必须这样做,至少在调用getBytes()时指定一个字符集@dnault你看,CharsetThank补充道!看起来像是
Map.of entry
而不是
Map.of entry
import java.util.Map;
import static java.util.Map.entry;
...
Properties props = new Properties();
props.putAll(Map.ofEntry(
    entry("key1", value1),
    entry("key2", value2), 
    entry("key3", value3)
));