在整个应用程序生命周期中只调用一次方法

时间:2017-08-01 05:05:44

标签: java

我正在尝试执行一个程序,我想在其中创建一个方法,该方法将被调用一次然后多次使用。请考虑以下示例

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每次在方法调用时输入数据,但只设置一次。有没有解决方法来排序。

1 个答案:

答案 0 :(得分:2)

如果存储日期为B.createDate(),则A类存储静态日期,仅调用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;
    }
}