【问题标题】:How to solve Could not find or load main class in Java oop?如何解决在 Java oop 中找不到或加载主类?
【发布时间】:2021-03-07 12:19:29
【问题描述】:

我的程序要写java实现类,我写了4个文件,
Mycompanymain -> 这将显示其他文件的输出。
公司 -> 这将是包含公司名称的 company.java。
地址 -> 这将包含为公司工作的人的地址。
供应商->这将链接两个类[公司,地址]。

我收到了这些错误:

MyCompanyMain.java:29: error: bad initializer for for-loop
        for(Suppliers : company.getSuppliers())
            ^
1 error
Error: Could not find or load main class MyCompanyMain
Caused by: java.lang.ClassNotFoundException: MyCompanyMain

这是 Mycompanymain.java :

import java.util.ArrayList;
import static java.lang.System.out;
public class MyCompanyMain 
{
    public static void main(String[] args)
    {
        Company company = new Company();
        company.setName("ABC sdn bhd");
        Address address = new Address(123, "Jalan UTeM", "Durian Tunggal",76100, "Melaka", 06123456);
        company.setAddress(address);
        ArrayList<Supplier> suppliers = new ArrayList<Supplier>();
        Supplier supplierBuku = new Supplier();
        supplierBuku.setSupplierName("Syarikat Buku Sdn Bhd");
        Address supplierBukuAddress = new Address(3, "Jalan Munsyi", "Ayer Keroh", 75400, "Melaka", 06123123);
        supplierBuku.setAddress(supplierBukuAddress);
        Supplier supplierComputer = new Supplier();
        supplierComputer.setSupplierName("Syarikat Computer Sdn Bhd");
        Address supplierComputerAddress = new Address(3, "Jalan Bukit Beruang","Ayer Keroh", 75400, "Melaka", 06111223);
        supplierComputer.setAddress(supplierComputerAddress);
        
        suppliers.add(supplierBuku);
        suppliers.add(supplierComputer);
        
        Company.setSuppliers(suppliers);
        
        Address comp_Address = company.getAddress();
        out.println(comp_Address.getNoShop()+" :"+comp_Address.getRoad()+" : "+comp_Address.getDistrict()+" :"+comp_Address.getPhone());
        
        for(Suppliers : company.getSuppliers())
        {
            out.print(s.getSupplierName()+" \t: ");
            Address supp_Address = s.getAddress();
            out.println(supp_Address.getNoShop()+" :"+supp_Address.getRoad()+" : "+supp_Address.getDistrict()+" :"+supp_Address.getPhone());
            
        }
    }
}

这是 Company.java:

import java.util.* ;
public class Company {
   private String name ;
   private Address address ;
   private ArrayList<Supplier> suppliers ;
   public Company() {
       suppliers = new ArrayList<Supplier>();
   }
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public Address getAddress() {
       return address;
   }
   public void setAddress(Address address) {
       this.address = address;
   }
   public ArrayList<Supplier> getSuppliers() {
       return suppliers;
   }
   public void setSuppliers(ArrayList<Supplier> suppliers) {
       this.suppliers = suppliers;
   }
  
  
}

这是地址.java:

public class Address {
   private int noShop ;
   private String road ;
   private String district ;
   private int posCode ;
   private String state ;
   private int phone ;
   public Address(int noShop, String road, String district, int posCode, String state, int phone) {
      
       this.noShop = noShop;
       this.road = road;
       this.district = district;
       this.posCode = posCode;
       this.state = state;
       this.phone = phone;
   }
   public int getNoShop() {
       return noShop;
   }
   public String getRoad() {
       return road;
   }
   public String getDistrict() {
       return district;
   }
   public int getPosCode() {
       return posCode;
   }
   public String getState() {
       return state;
   }
   public int getPhone() {
       return phone;
   }
  
}

这是供应商.java:

public class Supplier {
   private String supplierName ;
   private Address address ;
   public Supplier() {
      
   }
   public String getSupplierName() {
       return supplierName;
   }
   public void setSupplierName(String supplierName) {
       this.supplierName = supplierName;
   }
   public Address getAddress() {
       return address;
   }
   public void setAddress(Address address) {
       this.address = address;
   }
  
}

【问题讨论】:

  • 你必须修复编译错误,这就是为什么没有生成任何东西

标签: java oop compiler-errors development-environment


【解决方案1】:

这里的问题不是 main 方法,而是您的代码无法编译,因为您缺少增强 for 循环的类型声明。您似乎在Supplier(类型)和s(声明的变量)之间缺少一个空格:

for(Supplier s : company.getSuppliers())
// Here ----^
{
    out.print(s.getSupplierName()+" \t: ");
    Address supp_Address = s.getAddress();
    out.println(supp_Address.getNoShop()+" :"+supp_Address.getRoad()+" : "+supp_Address.getDistrict()+" :"+supp_Address.getPhone());        
}

【讨论】:

    【解决方案2】:

    你的 for 循环中缺少一个变量,使用这个

    for(Suppliers supplier : company.getSuppliers()) {
        // rest of code here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2016-01-16
      • 2021-06-06
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      相关资源
      最近更新 更多