创建类的对象的哈希映射

时间:2017-11-01 10:51:55

标签: java hashmap

我想创建一个类对象的哈希映射。

该课程如下 -

public class BitbucketRecordDataModel {
    private String softwareId;
    private String scmUrl;
    private String aggregationDate;

    public BitbucketRecordDataModel(String softwareId, String scmUrl, String aggregationDate) {
        this.softwareId = softwareId;
        this.scmUrl = scmUrl;
        this.aggregationDate = aggregationDate;
    }

    public String getSoftwareId() {
        return softwareId;
    }

    public void setSoftwareId(String softwareId) {
        this.softwareId = softwareId;
    }

    public String getScmUrl() {
        return scmUrl;
    }

    public void setScmUrl(String scmUrl) {
        this.scmUrl = scmUrl;
    }

    public String getAggregationDate() {
        return aggregationDate;
    }

    public void setAggregationDate(String aggregationDate) {
        this.aggregationDate = aggregationDate;
    }
}

我正在创建一个哈希映射,其键为String,并尝试将值插入哈希映射。但是当我尝试检索哈希映射的细节时,我得到null和一些非常奇怪的值,这是我的类的名称。

HashMap<String, BitbucketRecordDataModel> map = new HashMap<String, BitbucketRecordDataModel>();

cacheCondition = "hi";
username = "hi1";
protocol = "hi2";

BitbucketRecordDataModel bitbucketRecordDataModel = new BitbucketRecordDataModel(cacheCondition, username, protocol);

map.put(repoName, bitbucketRecordDataModel);

System.out.println(map.get("deployment-service-api.git"));

我是Java和Hash Maps的新手。我做错了什么以及为什么我会得到如此奇怪的价值观?

1 个答案:

答案 0 :(得分:0)

首先,您应该覆盖Class的 toString() 方法。如果您不覆盖它并从任何对象实例调用,它将作为对象类的实现进行响应。您可以在please find toString() Method

找到它的基本实现

请复制下面的toString()方法的共享代码块并将其粘贴到类中。

另外我注意到,在将数据放入映射时将 repoName 定义为键,但在检索数据时使用 deployment-service-api.git 作为键。 / p>

请务必使用相同的键值。

 @Override
        public String toString() {
            return "BitbucketRecordDataModel{" +
                    "softwareId='" + softwareId + '\'' +
                    ", scmUrl='" + scmUrl + '\'' +
                    ", aggregationDate='" + aggregationDate + '\'' +
                    '}';
        }