不兼容的类型,预期的hashmap找到String

时间:2012-04-07 09:09:30

标签: java

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;
    }

对此的任何帮助都是非常重要的 我有最后一行“return method_name,无法编译 我收到一个错误不兼容的类型,期望java.util.hashmap找到java.lang.String 最后一行返回method_name不编译

2 个答案:

答案 0 :(得分:1)

您的方法被声明为返回HashMap<String, Vector<String>>(开头很奇怪 - 如果您使用的是Java 2集合,通常使用List而不是Vector。但是你唯一的回复声明就在这里:

String method_name = null;
return method_name;

显然没有返回HashMap<String, Vector<String>>,是吗?你有什么期望呢?你可以只写

return null;

将返回空引用作为HashMap<String, Vector<String>>。 (就个人而言,我只是让异常泡沫化,但这是另一回事。)

(你没有展示你的方法的结尾也没有帮助,并且一些缩进肯定是奇怪的。)

答案 1 :(得分:1)

System.out.println("File not found: " + file_name);
HashMap<String, Vector<String>> method_name = null;
return method_name;

由于您的方法属于某种类型,因此您需要“转换”返回该类型的值。

如果您使用Eclipse进行编码,只需单击小错误图标,它就会为您修复错误,并为您投放错误。如果您不使用Eclipse,您可能会在将来考虑它。 (NetBeans以类似的方式工作)