2012-06-21 33 views
1

它給了我一個錯誤信息說在類型爲PrintStream的方法的printf(字符串,對象...)不適用的參數(字符串,無效)

方法的printf(字符串,對象。 ..)在類型爲PrintStream不適用於參數(字符串,空隙)

 

public class project { 

     public static void main(String[] args){ 

     duo duoObject = new duo(); 
     duo duoObject1 = new duo(5); 
     duo duoObject2 = new duo(2,6); 
     duo duoObject3 = new duo(3,7,5); 
     System.out.printf("%s\n", duoObject.militaryTime()); 
     System.out.printf("%s\n", duoObject1.militaryTime()); 
     System.out.printf("%s\n", duoObject2.militaryTime()); 
     System.out.printf("%s\n", duoObject3.militaryTime()); 
     } 

    } 


    public class duo { 
     private int hour; 
     private int minute; 
     private int second; 

     public duo(){ 

     } 
     public duo(int h){ 
      setHour(h); 
     } 
     public duo(int h, int m){ 
      setHour(h); 
      setHour(m); 
     } 
     public duo(int h, int m, int s){ 
      setHour(h); 
      setHour(m); 
      setHour(s); 
     } 
     public void setHour(int h){ 
      hour = ((h>=0 && h<24)? h : 0); 
     } 
     public void setMinute(int h){ 
      minute = ((h>=0 && h<60)? h : 0); 
     } 
     public void setSecond(int h){ 
      second = ((h>=0 && h<60)? h : 0); 
     } 
     public int getHour(){ 
      return hour; 
     } 
     public int getMinute(){ 
      return minute; 
     } 
     public int getSecond(){ 
      return second; 
     } 
     public void militaryTime(){ 
      System.out.printf("%02d:%02d:%02d", getHour(), getMinute(), getSecond()); 
     } 
    } 
+0

打印流在哪裏? – MiJyn

回答

5

militaryTime返回voidvoid表示什麼也不能打印。

也許你想要militaryTime返回代表軍事時間的字符串。在這種情況下,請嘗試定義方法如下:

public String militaryTime() { 
    return String.format("%02d:%02d:%02d", getHour(), getMinute(), getSecond()); 
} 
相關問題