我有一个查询,我的类中有一个名为abc的方法,其返回类型是arraylist,如下所示
public List<abcinfo> getabc(String fileIdentifier)
{}
现在在另一个方法中的同一个类中,我需要以key的形式添加上述方法的结果 如下所示
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("GGG", getabc(String fileIdentifier));
现在我直接调用方法名称作为值请告诉我这是正确的方法 因为所有的东西都在同一个班级,请指教
答案 0 :(得分:1)
这不会编译,因为您没有完全指定String对象作为getabc方法的参数。你为什么要在他的行中指定类型? :
data.put("GGG", getabc(String fileIdentifier));
String identifier
不是有效参数。传递String参数或变量,例如
data.put("GGG", getabc("ArgumentRelativeToTheContextOfYourMethod"));
除此之外,您的代码似乎没有任何问题。 (相对于你提出的问题) 方法或方法调用属于同一类应该不是问题。
在您的情况下,HashMap将有一个条目,其键为GGG
,值为您的getabc方法返回的列表。
然而,当您将其存储为对象
时,该值需要被类型转换为List答案 1 :(得分:0)
这是正确的,你可以在你的类中调用方法(以及它被声明为public),但是在读回Object时你必须将它强制转换为List<abcinfo>
。