2017-08-25 16 views
0

ここではインターフェイスの使用に問題があります。私はエラーを取得するArrayListにリスト「答え」を設定しようとすると:指定された型がセッターメソッドによって実装されるインターフェイスであるListインターフェイスの使用

メソッドsetAnswers(一覧)QuestionImpl引数には適用されませんタイプ(ArrayListの)

に私にはそれがいるようです私はこのような状況でインターフェイスを使用したいので、後で実装を指定することができます。

public class QuestionImpl extends QuestionAnswerImpl implements Comparable<Object>, Question { 
private List<Answer> answers; 
public QuestionImpl(){ 
    setAnswers(new ArrayList<AnswerImpl>()); 
} 
    @Override 
public void setAnswers(List<Answer> answers) { 
    this.answers = answers; 

} 
@Override 
public List<Answer> getAnswers() { 
    // TODO Auto-generated method stub 
    return answers; 
} 

回答インタフェース:

public interface Answer { 
int i=0; 
public int compareTo(Object object1); 
public String getListValu(int question); 
public void setNum(int i); 


} 

Answer class info (most of the code is irrelevant here) 
public class AnswerImpl extends QuestionAnswerImpl implements 
    Comparable<Object>, Answer {...} 
+0

変化(新しいArrayListを());'(むしろ 'よりので' '') –

答えて

2

あなたのタイプのパラメータが間違っています。あなたのメソッドはタイプAnswerのリストを期待していますが、同じではないAnswerImplのリストを渡します。これらは2つの異なるタイプです。これは、ジェネリック型のパラメータを持つことで解決できます。 setAnswers `へ

@Override 
public void setAnswers(List<? extends Answer> answers) { 
    this.answers = answers; 
} 
関連する問題