Именно поэтому и стоит использовать префиксы — пока нет стандарта каждый реализует как хочет. А если разные реализации будут называться одинаково, то это будет ад.
Вот примут стандарт — тогда все переделают реализацию под него и будут называть без префиксов.
С применениме «Полузакрытых конструкторов», как вы их называете, следует быть осторожным.
Часто метод equals пишется так, что
new User(1) {} != new User(1),
поскольку это разные классы. Соответственно, в тестах можно нарваться на поведение, отличное от обычного.
В общем, я за другие способы, хотя и про этот знать тоже неплохо.
А слово «ревизия» вы сами придумали? Просто обычно так переводится слово revision, которое есть единичное изменение в системе контроля версий. Даже не сразу понял что вы о code review речь ведёте.
Во-первых вы, наверное, имели ввиду значительно больше. Во вторых больше получается в 100 раз, что по сравнению с 10032 копейки. А в третьих, поскольку вы предлагаете именно урезать, то число вариантов вообще не изменится.
Насчёт «никакой информации в рантайме» вы неправы. Как раз в случае наследования от параметризованных классов информация о параметризации предка имеется и может быть вытащена через reflection.
По первому методу — часто решениям, прошедшим только тесты на 0 или аналогичные ответы, дают 0 баллов (мы на нижегородской городской делаем так).
По второму — что бы обойти перетестирование и выбор худего результата лучше считать хэш от входных данных и на его основании выбирать 1 или 2.
Вот примут стандарт — тогда все переделают реализацию под него и будут называть без префиксов.
Часто метод equals пишется так, что
new User(1) {} != new User(1),
поскольку это разные классы. Соответственно, в тестах можно нарваться на поведение, отличное от обычного.
В общем, я за другие способы, хотя и про этот знать тоже неплохо.
По второму — что бы обойти перетестирование и выбор худего результата лучше считать хэш от входных данных и на его основании выбирать 1 или 2.
В Firefox работает. Думаю, и в других браузерах будет работать.