2011-10-27 20 views
0

リストを持つ別のクラスのメソッドを呼び出そうとしていますが、それは私にはできません。ここに私の呼び出し文は次のとおりです。Javaでリストを呼び出す方法はありません

case 2: pm.displayList(list); 
     break; 

case 3: pm.searchList(scan, list); 
     break; 

そして、ここでは私の方法である:ここでは

public void displayList(List list){ 
    System.out.print(list); 
} 
//search for element 
public void searchList(Scanner scan, List list){ 
    System.out.println("Search for element:\t"); 
    String p = scan.nextLine(); 

    if (list.contains(p)) 
     System.out.println(p + " is in the list"); 
    else 
     System.out.println(p + " is not in the list."); 
} 

は私のエラーです:

MyProgram7.java:50: displayList(java.util.List) in Prog7Methods cannot be applied to (MyList<java.lang.String>) 
      case 2: pm.displayList(list); 
           ^
MyProgram7.java:53: searchList(java.util.Scanner,java.util.List) in Prog7Methods cannot be applied to (java.util.Scanner,MyList<java.lang.String>) 
      case 3: pm.searchList(scan, list); 
+1

「MyList」とは何ですか? –

答えて

2

機能がListを期待する、とあなたはMyList<java.lang.String>を供給しています。 MyListListインターフェイスを実装していることを確認してください(そうではないと思います)。

また、raw Listタイプを使用しないでください。 List<String>-またはMyList<String>が適切である。

+0

ありがとうございました。プログラムを実行して要素を検索しようとすると、「要素を検索」が表示され、「リストにない」と自動的に表示されます。私は何を入力するのを待つべきではありませんか? – Josh

+0

@Josh:リストにあるものを知ることなく、 'contains()'にどのような価値を与え、 'MyList.contains()'のソースコードを見ずに(つまり、できればクラス全体に) )。 – NPE

+0

私のエラーが見つかりました、ありがとうございます! – Josh

0

あなたMyList<T>クラスがListを実装していないように見えますインタフェース。もちろん、MyList<T>と表示されていますが、それはコンパイラエラーが示唆しているものです。

(さておき、あなたの方法は本当に代わりにジェネリックを使用しての生のList種類を取る必要がありそうであるように?)

+0

あなたの最後の声明はどういう意味ですか? – Josh

+0

@Josh:あなたのメソッドは '(List)'(List list) 'または'(List list) 'の代わりに'(List list) 'のパラメータで宣言されています。 –

0

コードsearchListList<Object>と予想されています。List<String>を渡しているようです。私はMyListListを実装していると仮定しています。

方法の両方は、リスト内の各要素はStringことを期待しているので、List<String>

0

ジョシュをとり、これは変形on your question hereですか? Check my answer - MyListがListインターフェイスを実装していることを確認します。

public class MyList<T> implements List<T> { 
    // you will need to provide implementations for all the 
    // methods that make up the List interface here in order to make it compile 
} 

あなたはJavaインターフェースで苦労している場合は、Web上の説明やチュートリアルの多くは(ここではan exampleである)あなたが見ることができるがあります。

関連する問題