Это считается плохой формой для полей, особенно если используются дженерики. Рассмотрим это (случай из реальной жизни) предварительного общего кода:
private Map a = new HashMap(), b = new HashMap();
Теперь a и b имели разное содержимое (их общие типы были бы разными). Это был код Java 1.3 / 1.4, так что это не имело значения. Но теперь, когда мне нужно добавить дженерики, их нужно разделить, и это станет более сложным изменением. Объявление int i, j; вероятно, не существовало бы, если бы не тот факт, что в C / C ++ они есть.
Так что для ваших деклараций методов, конечно, это экономит некоторый шаблон, но в ущерб читаемости и ремонтопригодности. Удобочитаемость в том смысле, что объявление может находиться на расстоянии десятков или сотен строк от остальной части метода. Ремонтопригодность с точки зрения того, что если один из этих методов в середине этой цепочки должен был изменить свой общий тип? Теперь у вас есть целая куча кода, который нужно перемещать, и вы должны правильно расставить запятые.
Теперь это не самая большая сделка, особенно с современной IDE, но суть в том, что Java просто не является кратким языком и ценит выразительность и ясность по сравнению с кратким выражением.
В некоторых случаях это вредит DRY, но в этом случае тот факт, что эти методы имеют одинаковый тип возвращаемого значения, просто случайен, и повторное объявление их не является истинным повторением.
В любом случае, расширение макроса, во всяком случае, было бы более подходящим способом решения этой проблемы (не то, что Java получит это в ближайшее время).