Есть ли применение?
Да - для ограничения области действия локальных переменных.
Это хорошая идея?
Вероятно, дискуссионный (и, вероятно, будет).
Лагерь "pro" скажет, что никогда не повредит сузить область действия переменной.Лагерь "con" скажет, что если вы используете его в методе, а ваш метод достаточно длинный, чтобы оправдать сужение области видимости переменных до определенных разделов, то это, вероятно, является признаком того, что вы должны делать отдельные методы из различных разделов,
Лично я ими пользуюсь, например:
public void doGet(
final HttpServletRequest request,
final HttpServletResponse response)
throws IOException {
final PersistenceManager pm = PMF.get().getPersistenceManager();
final List<ToDoListGaejdo> toDoLists;
{
final Query query = pm.newQuery(ToDoListGaejdo.class);
query.setOrdering("listName asc");
toDoLists = (List<ToDoListGaejdo>) query.execute();
}
final List<ToDoItemGaejdo> entries;
{
final Query query = pm.newQuery(ToDoItemGaejdo.class);
query.setOrdering("listName asc, priority asc");
entries = (List<ToDoItemGaejdo>) query.execute();
}
final ServletOutputStream out = response.getOutputStream();
out.println("<head>");
out.println(" <title>Debug View</title>");
....