2012-04-07 61 views
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; 
    } 

在这个任何帮助aprreciated 我有最后一行的“回报METHOD_NAME无法编译 我收到一个错误不兼容的类型,预期的java.util.HashMap发现的java.lang .String 最后一行返回METHOD_NAME不编译不兼容的类型,预计HashMap中找到字符串

回答

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

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

如果你使用Eclipse进行编码,你可以点击小错误图标,它会提供给你修复错误,它会为你施放。如果你不使用Eclipse,你可能会考虑将来。 (NetBeans以类似的方式工作)

+0

感谢您的帮助 – 2012-04-07 09:48:13

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>>。 (就我个人而言,我只是让异常冒出来,但这是一个不同的问题。)

(这也没有帮助,你没有显示你的方法的结束,并且一些缩进是决定性的奇数)。

+0

感谢您的帮助 – 2012-04-07 09:48:03

相关问题