2017-08-01 65 views
-1

我試圖執行一個程序,在該程序中我要創建一個將被調用一次然後多次使用的方法。考慮下面的例子在整個應用程序生命週期中只調用一次方法

public class SampleClass { 

    public static void main(String[] args) { 
     System.out.println(A.useMethodA()); 
     System.out.println(A.againUseMethodA()); 
    } 
} 

class A { 

    public static String useMethodA() { 
     return new SimpleDateFormat("yyyy-MM-dd").format(methodA()); 
    } 

    public static String againUseMethodA() { 
     return new SimpleDateFormat("EEE yyyy-MMM-dd").format(methodA()); 
    } 

    public static Date methodA() { 
     return B.createDate(); 
    } 
} 

class B { 
    public static Date createDate() { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter Year"); 
     int year = sc.nextInt(); 
     System.out.println("Enter month"); 
     int month = sc.nextInt(); 
     System.out.println("Enter day"); 
     int date = sc.nextInt(); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(year, month, date); 
     return calendar.getTime(); 

    } 
} 

現在的問題是我有一個方法來設置日期和時間。並且由於它有多次被調用,因爲有很多其他格式使用這種日期方法。我不想重複console window在方法調用時每次輸入數據,但只設置一次。有沒有任何解決方法來排序。

+0

什麼,你的意思是像存儲日期的變量? – John3136

+1

爲什麼不在main中調用'createDate'?其次,你應該緩存格式化的'字符串',而不是每次格式化日期。 –

+0

@ John3136,我只是想確保每次重複使用'A.useMethodA()''B.createDate()'不會被多次調用 – user7036414

回答

2

A類存儲靜態日期和只要求B.createDate()如果所保存的日期是null

class A { 

    private static Date theDate = null; 

    // unchanged 
    public static String useMethodA() { ... } 
    } 

    // unchanged 
    public static String againUseMethodA() {... } 

    public static Date methodA() { 
     if (theDate == null) 
     { 
      theDate = B.createDate(); 
     } 
     return theDate; 
    } 
} 
+0

它的工作,非常感謝:) – user7036414

相關問題