将ArrayList作为方法参数传递会在启动时提供错误java.lang.NoSuchMethodErro

时间:2015-03-27 13:28:51

标签: java methods arraylist parameters

我已经在网上检查了大约1小时,我无法弄清楚为什么在启动程序时出现此错误信息(编译似乎完美无缺)。

  

(java.lang.NoSuchMethodError:   RequestHandler.verifyRequest(Ljava / UTIL / ArrayList的)

我有一个classe RequesHandler,方法verifyRequest(ArrayList <String> req_lines)

以下是我班级的代码:

import java.io.*;
import java.net.*;
import java.util.*;

class RequestHandler {

    public boolean verifyRequest(ArrayList <String> req_lines) {

    int nb = req_lines.size();

    String first_line = req_lines.get(0);
    if(!checkFirstLine(first_line)) 
        return false;
   .....
    }

这里调用位于verifyRequest中的方法class Worker extends Thread的行导入java.io. * java.net。*和java.util。*

            ArrayList<String> req_lines = new ArrayList<String>();
            RequestHandler rqhand = new RequestHandler();

            while((line = in.readLine()) != null) {
                line_nbr++;
                req_lines.add(line);
                msg += line + "\n\r"; 
            }

            boolean valid;
            valid = rqhand.verifyRequest(req_lines);

我已经阅读过有关复制的内容,但我不认为这是我的问题,因为我不会尝试修改代码中数组列表的元素......是吗?我还读过关于坏名单初始化的内容,但我认为我做得很好......

是的,有人能帮帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

此错误的常见原因是类路径上有两个具有相同名称的类。例如,当您将类从一个项目移动到另一个项目并忘记正确清理和构建原始项目时,或者当您仍然使用旧版本的原始项目的JAR时,就会发生这种情况。