Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实用程序类的最佳方法_Java_Spring - Fatal编程技术网

Java 实用程序类的最佳方法

Java 实用程序类的最佳方法,java,spring,Java,Spring,在我的项目中,我需要一年内所有假期的集合。 我的第一种方法是使用静态类和如下方法: Calendar now = new GregorianCalendar(); giorniFestivi = new HashSet<GregorianCalendar>(); GregorianCalendar newYearDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.J

在我的项目中,我需要一年内所有假期的集合。 我的第一种方法是使用静态类和如下方法:

        Calendar now = new GregorianCalendar();
        giorniFestivi = new HashSet<GregorianCalendar>();

        GregorianCalendar newYearDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.JANUARY, 1);
        GregorianCalendar epiphany = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.JANUARY, 6);
        GregorianCalendar easterMonday = CommonUtils.findEasterDay(now.get(GregorianCalendar.YEAR));
        GregorianCalendar liberationDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.APRIL, 25);
        GregorianCalendar workerDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.MAY, 1);
        GregorianCalendar republicDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.JUNE, 2);
        GregorianCalendar ferragosto = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.AUGUST, 15);
        GregorianCalendar allSaints = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.NOVEMBER, 1);
        GregorianCalendar immaculate = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.DECEMBER, 8);
        GregorianCalendar christmasDay = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.DECEMBER, 25);
        GregorianCalendar saintStephano = new GregorianCalendar(now.get(Calendar.YEAR), Calendar.DECEMBER, 26);

        easterMonday.add(GregorianCalendar.DATE, 1);                                                                                                                                                    
        easterMonday.set(GregorianCalendar.HOUR, 0);                                                                                                                                                    
        easterMonday.set(GregorianCalendar.MINUTE, 0);                                                                                                                                                  
        easterMonday.set(GregorianCalendar.SECOND, 0);                                                                                                                                                  
        easterMonday.set(GregorianCalendar.MILLISECOND, 0);
Calendar now=new gregorianalendar();
giorniFestivi=新HashSet();
GregorianCalendar newYearDay=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.JANUARY,1);
GregorianCalendar epiphany=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.一月六日);
GregorianCalendar easterMonday=CommonUtils.findEasterDay(now.get(GregorianCalendar.YEAR));
GregorianCalendar liberationDay=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.APRIL,25);
GregorianCalendar workerDay=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.MAY,1);
GregorianCalendar republicDay=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.JUNE,2);
GregorianCalendar ferragosto=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.AUGUST,15);
GregorianCalendar allSaints=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.11,1);
GregorianCalendar implicate=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.DECEMBER,8);
GregorianCalendar christmasDay=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.DECEMBER,25);
GregorianCalendar saintStephano=新的GregorianCalendar(now.get(Calendar.YEAR),Calendar.DECEMBER,26);
easterMonday.add(GregorianCalendar.DATE,1);
easterMonday.set(Gregorianalendar.HOUR,0);
东孟日设置(格雷戈里安日历分钟,0);
easterMonday.set(GregorianCalendar.SECOND,0);
easterMonday.set(gregorianalendar.毫秒,0);
但每次调用此方法时,我都会避免创建所有这些对象。因此,我将我的代码与“单例方法”集成,如果它不为null(它是我的类中的一个静态属性),则直接返回giorniFestivi

这种方法行吗,或者可以改进(我也在考虑将这个类变成Springbean,并在需要时从上下文中获取它)


很抱歉,这是一个相当广泛的问题;唯一合理的答案是:视情况而定。我们不知道您的代码是如何构造的,我们不知道您过去是如何解决类似问题的;因此,我们无法告诉您什么是您组件的“最佳”解决方案。无论如何,在某种程度上,这些“日期”代表常量;因此,声明它们是完全公平和简单的。最好的方法是使用枚举法,但这是一个相当广泛的问题;唯一合理的答案是:视情况而定。我们不知道您的代码是如何构造的,我们不知道您过去是如何解决类似问题的;因此,我们无法告诉您什么是您组件的“最佳”解决方案。无论如何,在某种程度上,这些“日期”代表常量;因此,声明它们是非常简单的,最好的方法是使用枚举