【问题标题】:Advantages of multiple static blocks多个静态块的优点
【发布时间】:2013-09-12 07:07:24
【问题描述】:
class A{
    static{
      //initialize all things here
    }
}

这是我在代码中使用静态块的方式。但是我们也可以在一个类中保留多个静态

class A{
   static{
      //do something here
   }

   static{
      //do something else here
   }
}

我见过使用多个静态块的情况,但似乎无法弄清楚原因?

我想如果是为了可读性,下面的方法也可以使用

class A{
    static{
       someMethod();
       someOtherMethod();
    }
}

除了可读性之外,多个静态块还有其他优点吗?

【问题讨论】:

    标签: java static-block


    【解决方案1】:

    正如您所说,在您的情况下,第二个更具可读性。 static blocks 按他们下达的顺序执行。在您的情况下,没有其他好处/性能问题。

    【讨论】:

    • 我宁愿花一些时间来避免这些障碍。你如何测试这段代码?
    • @pimpf0r 他可能没有使用,他看到了一些地方并希望好奇:)
    • 我使用静态块进行 List/Map 初始化。
    • 是的,我是这么想的,所以你在类中使用静态映射,对所有子类实例都可用?你确定这些地图是什么时候初始化的?哪个实例是第一个?你同步这些地图,对吧?
    【解决方案2】:

    不那么严肃的回答:您可以使用分布在整个类中的多个静态块(从开头到结尾)来混淆初始化以及对字段和方法的访问。通过这一点,你真的很好地巩固了没有其他人会触及你的班级,因为这些静态块中最轻微的变化都会完全改变你班级的行为。 ;-)

    有点严重:如果你必须使用这些静态块(我真的喜欢它们,你现在可能已经意识到了),我建议将它们放在顶部正如您所建议的那样,该课程有据可查,并且合而为一。根据长度,您可能会考虑使用静态方法。但是让它们保持在一起,以便下一个(可怜的)灵魂与之合作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      相关资源
      最近更新 更多