工作學習筆記(十二)java 無法將類 XX類中的構造器 X應用到給定型別

小张不嚣张。發表於2024-11-20

今天的工作中遇到了這麼個情況“java 無法將類 XX類中的構造器 X應用到給定型別”

  • 含義
    就是說你寫的程式碼裡呼叫某個類的構造器來例項化物件,但傳入的引數情況不符合該構造器原本的定義要求,導致編譯器識別出這是一個錯誤的呼叫方式,進而丟擲這樣的報錯資訊。

  • 常見原因

  • 1.引數型別不符:
    例如有個類 Book 的構造器定義為 public Book(String title, int pageCount),要是你這樣寫 Book myBook = new Book(123, "Java Basics");,就錯了。因為構造器期望先傳入一個字串型別作為書籍標題,再傳入一個整型表示頁數,而這裡傳入引數的順序和型別剛好弄反了,不符合構造器要求,就會出現該報錯。

  • 2.引數數量不對:
    比如 Car 類有構造器 public Car(String brand, String color),可你在建立 Car 物件時寫成 Car myCar = new Car("Toyota");,少傳了表示顏色的引數,與構造器定義需要兩個引數不一致,也會觸發此報錯。

  • 解決方法

  • 1.核實引數數量是否正確
    每個構造器都明確規定了需要接收幾個引數來建立物件,呼叫時傳入的引數數量要與之相符。少傳或者多傳引數都會導致上述錯誤出現。

  • 2.檢查引數型別是否匹配
    構造器在定義時對每個引數都有明確的型別要求,所以要仔細核對建立物件時傳入引數的實際型別與構造器定義的引數型別是否一致。比如,構造器定義某個引數為 String 型別,那傳入的就必須是字串,不能是數字或者其他不相符的型別。

相關文章