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

对此有任何帮助,我有最后一行“返回不编译的方法名我收到错误不兼容的类型,预期 java.util.hashmap 发现 java.lang.String 最后一行返回方法名不编译

4

2 回答 2

1

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

String method_name = null;
return method_name;

这显然不是返回 a HashMap<String, Vector<String>>,是吗?你期望它做什么?你可以

return 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 回答