我想创建一个类对象的哈希映射。
该课程如下 -
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的新手。我做错了什么以及为什么我会得到如此奇怪的价值观?
答案 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 + '\'' +
'}';
}