java - List 中的 get(int) 不能应用于 java.lang.String

标签 java

我创建了一个这样的 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/

相关文章:

java - 如何在 vaadin 中使用复习插件?

java - 我应该如何设置 IntelliJ 14 的内存?

java - 尝试在 Android Studio 2.2.1 中运行新项目时出错

java - 使用 SnakeYAML 的嵌套结构

java - 向类中添加一个简单的 GIF

java - 使用 Java 将系统调用输出重定向到文件

java - 将文件从移动设备上的 Java 应用程序上传到 Web 服务器

java - 无法解析符号 'ButterKnife'

java - Spark RDD- map 与 mapPartitions

java - 处理构造函数中抛出的致命异常