0
public class Readparam
{
    private static String method_name;
    public static HashMap<String, Vector<String>> getParameters(String file_name)
    {
        HashMap temp_map = new HashMap();

        String current_dir = System.getProperty("user.dir");

        File new_file = new File(current_dir + "\\parameters\\" + file_name);

        StringTokenizer stringtok = null;
        StringBuffer temp_contents = new StringBuffer();

        BufferedReader input = null;
        try
        {
            input = new BufferedReader(new FileReader(new_file));
            String current_line = null;

            while (((current_line = input.readLine()) != null) && (current_line.length() > 0))
            {
                stringtok = new StringTokenizer(current_line, "(");

                method_name = stringtok.nextToken();

                String parsed_parameters = current_line.subSequence(current_line.indexOf("(") + 1, current_line.indexOf(")")).toString();

                StringTokenizer paramtok = new StringTokenizer(parsed_parameters, ",");

                String[] parsed_string = parsed_parameters.split(", ");
                String parsing = method_name + "(";

                for (int i = 0; i < parsed_string.length; i++)
                {
                    String[] temp_parse = parsed_string[i].split(" ");
                    if (i < parsed_string.length - 1)
                    parsing = parsing + temp_parse[0] + ", ";
                else {
                parsing = parsing + temp_parse[0];
                }
            }
                parsing = parsing + ")";

                Vector temp_vector = new Vector();
                for (String s : parsed_string) {
                temp_vector.add(s);
            }
                temp_map.put(parsing, temp_vector);
        }
    }
        catch (FileNotFoundException ex)
        {
        System.out.println("File not found: " + file_name);
        String method_name = null;
        return method_name;
    }

これに関するヘルプはありません。最後の行にコンパイルされない「returnmethod_name」があります。互換性のないタイプのエラーが発生します。予想されるjava.util.hashmapでjava.lang.Stringが見つかりました。最後の行のreturnmethod_nameはコンパイルされません。

4

2 に答える 2

1

メソッドは戻るように宣言されてHashMap<String, Vector<String>>います(これは最初は奇妙です-通常、Java 2コレクションを使用している場合Listではなく使用します)。Vectorしかし、あなたの唯一のreturnステートメントはここにあります:

String method_name = null;
return method_name;

それは明らかに戻っていないHashMap<String, Vector<String>>ですよね?あなたはそれが何をすることを期待しますか?あなたただ書くことができます

return null;

これは、null参照をとして返しますHashMap<String, Vector<String>>。(個人的には、例外をバブルアップさせますが、それは別の問題です。)

(また、メソッドの終わりを示していないことや、インデントの一部が明らかに奇妙であることも役に立ちません。)

于 2012-04-07T09:24:17.190 に答える
1
System.out.println("File not found: " + file_name);
HashMap<String, Vector<String>> method_name = null;
return method_name;

メソッドは特定のタイプであるため、そのタイプに返される値を「キャスト」する必要があります。

Eclipseを使用してコーディングしている場合は、小さなエラーアイコンをクリックするだけで、エラーが修正され、キャストされます。Eclipseを使用していない場合は、将来的に検討する可能性があります。(NetBeansも同様に機能します)

于 2012-04-07T09:26:51.580 に答える