簡體   English   中英

為什么/什么時候 System.out.println(); 給出錯誤:方法打印(布爾)...不適用

[英]Why/when does System.out.println(); give error: method print(boolean)...not applicable

我最近了解到System.out.print();使用System.out.print(); 導致此錯誤:

The method print(boolean) in the type PrintStream is not applicable for the arguments ()

我在幫助其他人編碼時發現了這一點。 當然,自然的問題是:為什么他們的代碼中沒有參數。 我在文檔中沒有發現任何提及此案例的錯誤。

搜索文檔我發現System.out.print(T t)是為許多類型定義的,但是當根本不存在參數時,它默認為print​(boolean x) 參考

然后,當然它抱怨該論點不適用。

我正在幫助的人是一個經常使用System.out.println()的新學生,並且對為什么會發生此錯誤感到困惑。

學生最終想要一個字符串,而該方法只是一個占位符。 我解釋了編譯需要某種參數。

我的問題是:為什么編譯器做出這個假設並因此給出這個錯誤?

我認為控制台切斷了整個消息,當我嘗試在 Intellij 中編譯 System.out.print() 時,它顯示了所有消息:

no suitable method found for print(no arguments)
method java.io.PrintStream.print(boolean) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(char) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(int) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(long) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(float) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(double) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(char[]) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(java.lang.String) is not applicable
  (actual and formal argument lists differ in length)
method java.io.PrintStream.print(java.lang.Object) is not applicable
  (actual and formal argument lists differ in length)

編譯器嘗試按照它們在文件中聲明的順序來匹配所有方法。

我有同樣的錯誤,我是這樣解決的:

它是

 System.out.println("x=", x);

將其更改為:

 System.out.println("x="+ x);

每當在打印語句中使用像%.2f這樣的格式化方法或其他類似的東西時,請使用System.out.printf("Price:%,2f:,price)而不是System.out.println("Price:%,2f:,price) 錯誤得到解決。 [Price:%,2f:,price]只是打印語句中使用的格式化語句的一個示例。

我在嘗試像這樣格式化字符串時遇到了同樣的錯誤:

System.out.println("%d %d \n", I, n);

其中In都是整數。 后來我意識到, println()方法不需要兩個參數。 那只需要一個String參數。 我通過這樣做糾正了這些錯誤;

System.out.printf("%d %d \n", I, n);

函數printf()接受兩個參數並格式化字符串。

錯誤是這樣的:

Error:
|  no suitable method found for println(java.lang.String,int,int,int)
|      method java.io.PrintStream.println() is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(boolean) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(char) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(int) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(long) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(float) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(double) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(char[]) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(java.lang.String) is not applicable
|        (actual and formal argument lists differ in length)
|      method java.io.PrintStream.println(java.lang.Object) is not applicable
|        (actual and formal argument lists differ in length)
|  System.out.println("%d %d %d", x, y, z);

暫無
暫無

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

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