当我打电话给 calculateStringValue
方法在主方法中的任何字符串上,都可以很好地工作。当我尝试调用 printStringsWithValues
方法,我得到一个空指针异常。这和字符串在 ArrayList
?
public static void main(String[] args){
List<String> testList = new ArrayList<>();
testList.add("apple");
testList.add("hello");
printStringsWithValues(testList);}
public static void printStringsWithValues(List<String> strings)
{
for (String string : strings) {
System.out.println(string + ", " + calculateStringValue(string));
}
}
public static int calculateStringValue(String word)
{
int value = 0;
for(int j=0; j < word.length(); j++)
{
if(letterValueMap.containsKey(word.charAt(j)))
{
value += letterValueMap.get(word.charAt(j));
}
else{
return -1;
}
}
return value;
}
1条答案
按热度按时间mbzjlibv1#
使用lettervaluemap类型的上下文推断,我假设它是一个
Map<Character, Integer>
,所以我尝试创建这样的Map,并指定一些任意值来测试代码。我就是这么做的
首先声明一个lettervaluemap变量,然后使用静态初始化块向它提供一些值
然后我简单地使用你的代码的另一部分不变(除了为了测试的目的我增加了几个词)!
测试它会得到预期的结果,而不会生成任何空指针异常