我创建了一个这样的 map :
private Vector vaildateTestScore(String persTestCode, String score, List<TSpecialTest> specialTestList, Vector errorVtr) {
Map<String, TSpecialTest> specialTestmap = new HashMap<String, TSpecialTest>();
for (TSpecialTest specialTest : specialTestList) {
specialTestmap.put(persTestCode,specialTest);
}
if (specialTestList.get(persTestCode).getPersTestScrQyMin() < score){
errorVtr.add(specialTestList.get(persTestCode)+" max range is "+" "+specialTestList.get(persTestCode).getPersTestScrQyMax());
System.out.println("There was an error with > "+specialTestList.get(persTestCode).getPerTestTypeCd());
}
else if(specialTestList.get(persTestCode).getPersTestScrQyMax() > score){
errorVtr.add(specialTestList.get(persTestCode).getPerTestTypeCd()+" min range is "+" "+specialTestList.get(persTestCode).getPersTestScrQyMin());
System.out.println("There was an error with < "+specialTestList.get(persTestCode).getPerTestTypeCd());
}
return errorVtr;
}
但是,无论您在哪里看到 persTestCode
,我的 IDE 都会显示运行时错误:List 中的 get(int) 无法应用于 java.lang.String
这个类是通过在类的开头调用以下代码来设置的,如下所示:
SpecialTestImpl specialTest = ComponentBuilder.getInstance().getApplicationContext().getBean(SpecialTestImpl.class);
List<TSpecialTest> specialTestList = specialTest.specialTestList();
然后像这样调用该方法:
String persTestCode = elem.replace("scr.", "");
String score = request.getParameter(elem);
Vector errorVtr = new Vector();
//validates inputted test scores
vaildateTestScore(persTestCode, score, specialTestList,errorVtr);
--------------------已解决-------------------------- ------
这对我来说完全是越界。选项卡按钮和名称相似性让我印象深刻。这就是我正在努力做的事情。
private Vector vaildateTestScore(String persTestCode, String score, List<TSpecialTest> specialTestList, Vector errorVtr) {
Map<String, TSpecialTest> specialTestmap = new HashMap<String, TSpecialTest>();
for (TSpecialTest specialTest : specialTestList) {
specialTestmap.put(persTestCode,specialTest);
}
if (specialTestmap.get(persTestCode).getPersTestScrQyMax() > Integer.parseInt(score)){
errorVtr.add(specialTestmap.get(persTestCode)+" max range is "+" "+specialTestmap.get(persTestCode).getPersTestScrQyMax());
System.out.println("There was an error with > "+specialTestmap.get(persTestCode).getPerTestTypeCd());
}
else if(specialTestmap.get(persTestCode).getPersTestScrQyMax() > Integer.parseInt(score)){
errorVtr.add(specialTestmap.get(persTestCode).getPerTestTypeCd()+" min range is "+" "+specialTestmap.get(persTestCode).getPersTestScrQyMin());
System.out.println("There was an error with < "+specialTestmap.get(persTestCode).getPerTestTypeCd());
}
return errorVtr;
}
最佳答案
Java List get()
方法将一个整数作为列表的索引,并返回该索引处的对象。您可能会将其与在方法开头添加的 map 数据结构混淆。
关于java - List 中的 get(int) 不能应用于 java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38528849/