【发布时间】:2017-11-06 15:11:02
【问题描述】:
我目前在处理 3 中工作,并且无法理解 HashMap 的返回。我有一张地图,Map<String, Chromosome> genes = new HashMap<String, Chromosome>(),它使用了我的课程,
class Chromosome{
Genotype geneOne;
Genotype geneTwo;
Chromosome(){ ... }
Chromosome(Genotype gOne, Genotype gTwo){ ... }
void setGeneOne(Genotype gene){ ... }
void setGeneTwo(Genotype gene){ ... }
Genotype getDomGene(){ ... }
Genotype getRecGene(){ ... }
}
class Genotype{
Object value;
float weight;
public Genotype(int value, float weight){ ... }
public Genotype(int[] value, float weight){ ... }
public Genotype(String value, float weight){ ... }
public Genotype(float value, float weight){ ... }
public Object getValue(){ ... }
public float getWeight(){ ... }
public void setValue(int value){ ... }
public void setValue(int[] value){ ... }
public void setValue(String value){ ... }
public void setValue(float value){ ... }
}
我在想的是,当我从地图中“获取”一个值时,我应该能够从那里访问它的方法。 IE。
class Flower{
Map<String, Chromosome> genes;
Flower(){
genes = new HashMap<String, Chromosome>();
genes.put("color", new Chromosome(new Genotype(64, 1.0), new Genotype(25,0.5)));
Genotype test = genes.get("color").getDomGene(); //should return the first param passed to the new chromosome
}
}
我希望避免每次使用返回的对象时都必须声明它。从所有 20 分钟的谷歌搜索中,我似乎找不到任何关于此工作的信息,那么为什么这不起作用,可以做些什么来解决它?
【问题讨论】:
-
您的问题是什么? “处理 3”是什么意思?
-
@AriaPahlavan Processing 是 Java 的一个子集,我猜你可以这么说。我的问题在帖子底部有明确的措辞。
-
@shmosel 我已更新为尽可能提供最小且完整的示例。至于可验证,因为我的问题是关于为什么某些东西不起作用,显然它是不可验证的。我在问为什么它不起作用,以及我能做些什么。
-
这些类都在同一个包中吗?
标签: java hashmap processing