LINUX.ORG.RU

История изменений

Исправление stevejobs, (текущая версия) :

Зато полное перечисление можно проверить статически в compile time, а вот этот иф с экзепшеном в конструкторе даже IDE типа Идеи не распарсит (нужно городить язык, в котором в сигнатуру нужно будет добавлять тесты/guards, которые IDE будет гонять в compile time для проверки параметров, а в рантайме в начало каждого метода с этими гардами впихать проверку теста и если не проходит - RuntimeException).

типа

class Percent {
  private int value = 0;
  @Guard("should be between 0 and 100", number>=0, number<100)
  public Percent(int number) {
    value = number;
  }
}

Исходная версия stevejobs, :

Зато полное перечисление можно проверить статически в compile time, а вот этот иф с экзепшеном в конструкторе даже IDE типа Идеи не распарсит (нужно городить язык, в котором в сигнатуру нужно будет добавлять тесты/guards, которые IDE будет гонять в compile time для проверки параметров, а в рантайме в начало каждого метода с этими гардами впихать проверку теста и если не проходит - RuntimeException).