1

BufferedReaderによって返された文字列をHashtableのput(Object、Object)メソッドに渡すことに関して、Eclipseがエラーを表示する理由がわかりません。APIを読みましたが、手がかりがわかりません。一意の文字列が返されるかどうか確信が持てないのではないでしょうか。

文字列ディクショナリはファイルの他の場所に設定されています。これを重要な部分(問題のメソッドとその変数で発生するすべてのもの)に分解しました。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Hashtable;

public class Model {
     private Hashtable hash=new Hashtable();
     private String dictionary;

     public void loadWords() throws IOException{
        BufferedReader br=null;

        try{        
            br=new BufferedReader(new FileReader(dictionary));
            do{
                hash.put(br.readLine(), new Node<E>);
            }
            while(br.readLine()!=null);

        }catch(IOException iOE){
            System.out.println("Fission mailed");
        }
        finally{
            br.close(); // Closing the buffered reader
        }
    }
4

2 に答える 2

4

キーの問題ではなく、値の部分の問題のようです。これを値として追加することはできませんnew Node<E>new Node<String>()またはのような特定のタイプである必要がありますnew Node<Integer>()

于 2012-10-13T19:36:49.317 に答える
1

\1。ノードのコンストラクターを呼び出していません:hash.put(br.readLine()、new Node);

デフォルトのコンストラクターを呼び出すには、次のようなクラスの名前で「メソッド」を呼び出す必要があります。

new String(); /*または*/new Node();

\2。ジェネリック型<E>は、クラスの宣言のどこにも見られません。これを使用するには、次のようなことを行う必要があります。


    public class Model<E> {
       private Hashtable<String, Node<E>> hash=new Hashtable<String, Node<E>> ();

..だから、最後まで行くか、完全に削除します。

于 2012-10-13T19:48:25.717 に答える