【问题标题】:Error message "java.lang.NoSuchMethodError: Customer.<init>(Ljava/lang/String;D)V " [closed]错误消息“java.lang.NoSuchMethodError: Customer.<init>(Ljava/lang/String;D)V” [关闭]
【发布时间】:2023-03-17 15:04:01
【问题描述】:

运行此程序时,我不断收到相同的错误消息。这就是我得到的:

Exception in thread "main" java.lang.NoSuchMethodError: Customer.<init>(Ljava/lang/String;D)V 
at Customer5.input(Customer5.java:35)<b>---(See below (code) to refer to lines 35 & 7)
at Customer5.main(Customer5.java:7)

另一件事是“客户”类显示一条消息,上面写着“客户类型已定义”。

import java.util.*;
public class Customer5 {

    public static void main(String[] args) {


        Customer[] customers=input();//This is line 7
        customers=sort(customers);
        output(customers);
    }


    public static Customer[] input(){

        Scanner input =new Scanner(System.in);
        int n;


        String name;
        double debt;


        System.out.print("Enter number of customers :");
        n=input.nextInt();

        Customer[] customers=new Customer[n];
        for(int i=0; i<n; i++){

            System.out.print("Enter name:");
            name=input.next();

            System.out.print("Enter debt:");
            debt=input.nextDouble();

            customers[i]=new Customer(name, debt);//This is line 35
        }
        return customers;
    }


    public static Customer[] sort(Customer[] customers){

        Customer temp;
        for(int i=0; i<customers.length; i++){

             for(int j=i+1; j<customers.length; j++){

                   if(customers[j-1].debt>customers[j].debt){

                         temp=customers[j-1];
                         customers[j-1]=customers[j];
                         customers[j]=temp;
                   }
             }
        }
              return customers;
    }



     public static void output(Customer[] customers){
            for(int i=0; i<customers.length; i++){
             System.out.println(customers[i].name+"\t" +customers[i].debt);
            }
     }



} 

class Customer{ //this line shows a message that says:The type Customer is already defined

    public String name;
    public Double debt;

    public Customer(String name, double debt){
       this.name=name;
       this.debt=debt;
    }

}

我不知道该怎么做才能修复它。我对这种类型的错误消息不是很熟悉。对于如何解决这个问题,我非常感谢任何反馈或 cmets。谢谢!

【问题讨论】:

  • 重新编译你的类和所有相关的类。
  • 一个 IDE 将为您处理所有这些。

标签: java class object


【解决方案1】:

这个类对我来说运行良好,问题是你的包或应用程序中必须有一些其他客户类没有构造函数public Customer(String name, double debt)

尝试单击 Ctrl + Shift + R 并搜索客户或 按Ctrl + H,在所有java文件中搜索Customer

【讨论】:

  • 也许它会帮助其他人:如果您不确保新的库在正在运行的服务器上也可用,那么从旧库升级可能会导致此类异常也很高兴。当您使用 maven 并将 lib 声明为 provided 时,可能会发生这种情况 - 这意味着您必须确保该 lib 在运行时可用。
【解决方案2】:

经过测试,对我来说效果很好。

在您的 IDE 中找到“清除并构建”选项,它应该可以解决问题。


还要确保在您的项目中不存在其他客户类。

【讨论】:

  • 问题是我有另一个客户类。感谢您的反馈!
猜你喜欢
  • 2019-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 2019-10-17
  • 2019-12-16
  • 2013-09-07
  • 1970-01-01
相关资源
最近更新 更多