我想用Java Map填充以下文本的占位符。
String text = "Media file %s of size %s has been uploaded";
这就是我在地图中输入值的方式。
Map<String, String> properties = new HashMap<>();
properties.put(MediaFile.fileName, "Sample 001");
properties.put(MediaFile.fileSize, "2Mb");
我希望输出文字是这样的。
Media file Sample 001 of size 2Mb has been uploaded
但我把它作为输出。
Media file 2Mb of size 2Mb has been uploaded
我创建了一个类来保存变量fileName和fileSize。
public class MediaFile {
public static String fileName;
public static String fileSize;
}
但是,如果我像下面这样使用它可以正常工作。但我想分开fileName和fileSize。但我不确定我是否正确实现了MediaFile类。谁能告诉我我的代码有什么问题?
properties.put("fileName", "Sample 001");
properties.put("fileSize", "2Mb");
答案 0 :(得分:5)
当您使用MediaFile.fileSize
和null
作为键时,两者都包含相同的值 - properties.put()
- 因为您从未初始化它们。因此,第二个properties.put()
替换了第一个HashMap
的值(因为public class MediaFile {
public static final String fileName = "fileName";
public static final String fileSize = "fileSize";
}
不允许重复键。)
您可能想要使用常量:
[{checkindat:"24/09/2017",checkouts:"25/09/2017"},{checkindat:"25/09/2017",checkouts:"26/09/2017"}]
现在使用不同的值初始化常量,原始代码将起作用。