我有一个抽象类Medium,其中一个datamembers是枚举。
private Taal talenOndertiteling[];
public enum Taal {
NEDERLANDS, FRANS, DUITS, ENGELS, SPAANS, ITALIAANS
}
public Taal[] getTalenOndertiteling() {
return talenOndertiteling;
}
public void setTalenOndertiteling(Taal[] talenOndertiteling) {
this.talenOndertiteling = talenOndertiteling;
}
现在,当我尝试调用最后一个方法时:
BD bd1 = new BD();
bd1.setTalenOndertiteling(Taal.ENGELS);
我收到了一个错误。 (BD类实现了Medium类)关于如何调用该方法的任何想法?如果我想设置几个语言,我该怎么办呢?
谢谢!
答案 0 :(得分:6)
您的方法接受Taal[]
,但您的调用会通过Taal
。你有两个选择:
传递明确的Taal[]
:
bd1.setTalenOndertiteling(new Taal[] {Taal.ENGELS});
或者,更改方法声明以获取vararg参数并让编译器为您执行此操作:
public void setTalenOndertiteling(Taal... talenOndertiteling) {
答案 1 :(得分:2)
您必须创建一个包含一个元素的数组,并将其传递给方法:
bd1.setTalenOndertiteling(new Taal[]{Taal.ENGELS});
答案 2 :(得分:0)
setter需要一组Taal枚举。
所以正确使用是:
BD bd1 = new BD();
bd1.setTalenOndertiteling(new Taal[]{Taal.ENGELS});
或更详细:
BD bd1 = new BD();
Taal[] taals = new Taal[1];
taals[0] = Taal.ENGELS;
bd1.setTalenOndertiteling(taals);
答案 3 :(得分:0)
setTalenOrdertiteling
获取一个数组。
所以正确的呼叫应该是:
bd1.setTalenOndertiteling(new Taal[] {Taal.ENGELS});
答案 4 :(得分:0)
两个问题: 1)setTalenOndertiteling()期待Taal数组,所以
bd.setTalenOndertiteling(new Taal[]{Taal.ENGELS};
2)Taal似乎是一个嵌套的枚举(在BD?中),没有特定的导入,你需要做
bd.setTalenOndertiteling(new BD.Taal[]{BD.Taal.ENGELS};