如何正确地从Java Map中检索数据?

时间:2017-09-25 10:16:57

标签: java oop hashmap

我想用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");

1 个答案:

答案 0 :(得分:5)

当您使用MediaFile.fileSizenull作为键时,两者都包含相同的值 - 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"}]

现在使用不同的值初始化常量,原始代码将起作用。