1
class A{
    static{
      //initialize all things here
    }
}

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

class A{
   static{
      //do something here
   }

   static{
      //do something else here
   }
}

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

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

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

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

4

2 回答 2

0

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

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

于 2013-09-12T15:12:14.223 回答
0

正如你所说,在你的情况下,第二个更具可读性。 静态块按它们放置的顺序执行。在您的情况下,没有其他好处/性能问题。

于 2013-09-12T07:15:08.560 回答