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不编译
答案 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以类似的方式工作)