2016-09-08 6 views
0
static { 
    try { 
     StringBuffer sb = new StringBuffer(); 
     sb.add("Kiran"); 
     string s= "Vikram"; 
     sb.add(s); } 
    catch (Exception e) { 
     logger.fatal("Exception", e); 
    } 
} 

ответ

1

Я бы предложил: совсем нет.

статический - аномалия в хорошем дизайне OO. А статические блоки инициализации выглядят еще хуже.

Вместо этого: узнайте, как написать testable код, например, просмотрев эти видео за here. И затем измените свой код, чтобы не делать такие вещи. И ваша потребность издеваться над этими вещами ... испаряется.

И особенно, поскольку код в вашем примере не имеет любой боковой эффект; поскольку ни одна из используемых здесь переменных не существует вне этого блока. Вероятно, у вас есть «сокращенный» пример; и на самом деле ваш статический блок выполняет какое-то свойство init. Но даже в этом случае ... вы могли бы найти лучшие способы сделать это; вместо того, чтобы помещать их в статический блок!

Смежные вопросы