首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.NoSuchMethodException: Practice.Virual.main [class [Ljava.lang.String;] at java.lang.Class.getMethod(Class.java:2072)错误

java.lang.NoSuchMethodException: Practice.Virual.main [class [Ljava.lang.String;] at java.lang.Class.getMethod(Class.java:2072)错误
EN

Stack Overflow用户
提问于 2021-10-14 07:15:54
回答 1查看 33关注 0票数 0

我的代码出了什么问题?我是编程新手,所以即使我的代码可以运行,我在这里也可能会遇到一些问题。不过,我的代码似乎没有运行。显示的错误是粘贴在这篇文章的底部。

代码语言:javascript
复制
String name, streetname, barangay, city, region;
int zipcode, streetno;

   void display() {
     System.out.println("Name: " + this.name);
     System.out.println("Street No: " + this.streetno);
     System.out.println("Street: " + this.streetname);
     System.out.println("Barangay: " + this.barangay);
     System.out.println("City : " + this.city);
     System.out.println("Region: " + this.region);
     System.out.println("Zip Code : " + this.zipcode);
     
   }
}

class residentinfo {

  public static void main(String[] args) {
  
  Scanner in = new Scanner(System.in);
  Virual rsd = new Virual();
  
  System.out.println("Enter Name: ");
  rsd.name = in.nextLine();
  System.out.println("Enter Street No: ");
  rsd.streetno = in.nextInt();
  System.out.println("Enter Street Name: ");
  rsd.streetname = in.nextLine();
  System.out.println("Enter Barangay: ");
  rsd.barangay = in.nextLine();
  System.out.println("Enter City: ");
  rsd.city = in.nextLine();
  System.out.println("Enter Region: ");
  rsd.region = in.nextLine();
  System.out.println("Enter Zip Code: ");
  rsd.zipcode = in.nextInt();
  
  rsd.display();

  }
}

我的代码出了什么问题?当我运行它的时候,这个错误出现了。我的代码似乎没有运行,但它已经运行了。

代码语言:javascript
复制
java.lang.NoSuchMethodException: Practice.Virual.main [class [Ljava.lang.String;] at java.lang.Class.getMethod(Class.java:2072)
at java.lang.Class.getDeclaredMethod(Class.java:2050)
at com.duy.android.compiler.java.Java.run(Java.java:105)
at com.duy.ide.javaide.run.activities.ExecuteActivity.executeDex(ExecuteActivity.java:147)
at com.duy.ide.javaide.run.activities.ExecuteActivity.exec(ExecuteActivity.java:124)
at com.duy.ide.javaide.run.activities.ExecuteActivity.access$100(ExecuteActivity.java:45)
at com.duy.ide.javaide.run.activities.ExecuteActivity$1.run(ExecuteActivity.java:88)
at java.lang.Thread.run(Thread.java:923
EN

回答 1

Stack Overflow用户

发布于 2021-10-14 07:44:39

有几件事你应该用你的代码来修复。一般来说,Java中的类名都是以大写字母开头的。您应该为您的变量使用getter和setter,以获得最佳实践。此外,您不能使用当前代码读取streetName,因为当您调用in.nextInt()方法时,它不会使用换行符。此外,为了获得最佳实践,您应该使用camelCase作为变量名。

这里有一个更好的方法来处理你的代码。

代码语言:javascript
复制
public class Virual {
    private String name;
    private String streetName;
    private String barangay;
    private String city;
    private String region;
    private int zipcode;
    private int streetNo;

    public Virual() {
    }

    @Override
    public String toString() {
        return String.format("Name: %s Street No: %d Street: %s Barangay: %s City : %s Region: %s Zip Code : %d", name, streetNo, streetName, barangay, city, region, zipcode);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStreetName() {
        return streetName;
    }

    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }

    public String getBarangay() {
        return barangay;
    }

    public void setBarangay(String barangay) {
        this.barangay = barangay;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public int getZipcode() {
        return zipcode;
    }

    public void setZipcode(int zipcode) {
        this.zipcode = zipcode;
    }

    public int getStreetNo() {
        return streetNo;
    }

    public void setStreetNo(int streetNo) {
        this.streetNo = streetNo;
    }
}


public class ResidentInfo {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        Virual rsd = new Virual();

        System.out.println("Enter Name: ");
        rsd.setName(in.nextLine());
        System.out.println("Enter Street No: ");
        rsd.setStreetNo(in.nextInt());
        in.nextLine(); //to consume /n character (new line)
        /*if you don't put in.nextLine after in.nextInt , in.nextInt method don't read newline char
        so you can't enter value for street name
         */
        System.out.println("Enter Street Name: ");
        rsd.setStreetName(in.nextLine());
        System.out.println("Enter Barangay: ");
        rsd.setBarangay(in.nextLine());
        System.out.println("Enter City: ");
        rsd.setCity(in.nextLine());
        System.out.println("Enter Region: ");
        rsd.setRegion(in.nextLine());
        System.out.println("Enter Zip Code: ");
        rsd.setZipcode(in.nextInt());

        System.out.println(rsd.toString());

    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69566494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档