簡體   English   中英

在Java中找不到類的異常?

[英]Class not found exception in java?

我在同一包(用戶)中有兩個類。

第一類:

package users;

public class Account{
  public String username;
  public String password;
}

第二類:

package users;

public class employee{

  public void login() {
    Account a = new Account();
    a.username = "MHM";
    a.password = "15234785";
    System.out.println("Username: " + a.username);
    System.out.println("Password: " + a.password);
  }
}

在主頁上,當我調用method(login)時:

它對我說:java.lang.ClassNotFoundException:帳戶

  package users;

  public class Main{

    public static void main(String argv[]) {
      employee e = new employee();
      e.login();  
    }
  }

該錯誤的解決方法是什么?

注意:這些類是在默認程序包中編寫的,然后我創建了程序包用戶,然后將其移至新程序包中。

您的帳戶類別定義不正確。 您忘記添加變量“用戶名”和“密碼”的類型。 它可能應該是:

public class Account{
public String username;
public String password;
}

(更不用說選擇全局全局變量永遠不是一件好事(而是使用getter和setters)-但這是另外一個話題:))

java.lang.ClassNotFoundException:帳戶

您的Account類別無法編譯。按此更改您的帳戶類別

public class Account{
public String username;
public String password;
}

更新

測試了您的代碼,除此之外沒有其他問題,可以正常工作。

由於usernamepassword需要對象類型,因此無法編譯Account類。 String

public class Account{
  public String username;
  public String password;
}

只要這樣做就可以了:

 public class Account{
   public String username;
   public String  password;
}

變量應具有類型

拋出ClassNotFoundException原因是尚未編譯您的Account類。 因此,尚未生成.class文件。

要使編譯成功的Account類如下:

public class Account{
public String username;
public String password;
}

正如所見,

首先要記住,在一個/單個包中,最大1類應該是公共的,超過1類作為公共修飾符是不可能的。

正如我所看到的,您似乎忘記了數據類型,

使其正確如

package users;


class Account{
  public String username;
  public String password;
}

class employee{

  public void login() {
    Account a = new Account();
    a.username = "MHM";
    a.password = "15234785";
    System.out.println("Username: " + a.username);
    System.out.println("Password: " + a.password);
  }
}

public class MyMainClass{
   public static void main(String [] args){
    // block of code... 
  }
}

如果您想要更多的類作為公共修飾符,則可以通過為所有公共類單獨包裝來實現。

已編輯

  package users;

    class Account{
          public String username;
          public String password;
        }

    class employee{

          public void login() {
            Account a = new Account();
            a.username = "MHM";
            a.password = "15234785";
            System.out.println("Username: " + a.username);
            System.out.println("Password: " + a.password);
          }
        }


    public class MyMain {

        public static void main(String[] args) {
            employee e = new employee();
            e.login();  
        }

    }

 /*
Output : 
---------------
Username: MHM
Password: 15234785

*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM