Существует ли способ реализовать алгебраические типы в Java?

Вы можете использовать агрегацию ниже 3,6 и выше.

db.colname.aggregate(
 [{"$project":{
    "loop":{
      "$reduce":{
        "input":"$loop",
        "initialValue":{},
        "in":{"$mergeObjects":["$value","$this"]
        }
      }
    }
 }}]
)
7
задан Don Kirkby 17 November 2008 в 05:01
поделиться

3 ответа

Дайте класс A конструктор с доступностью уровня пакета (и никакие другие конструкторы).

Спасибо, Dave L., для бита ни о каких других конструкторах.

4
ответ дан 7 December 2019 в 07:52
поделиться

Вы, вероятно, хотите перечисление (Java> = 1.5). Перечислимый тип может иметь ряд фиксированных значений. И это имеет всех положительных героев класса: они могут иметь поля и свойства, и могут заставить их реализовать интерфейс. Перечисление не может быть расширено.

Пример:

enum A {

  B,
  C,
  D;

  public int someField;

  public void someMethod() {
  }


}
3
ответ дан 7 December 2019 в 07:52
поделиться

Вы могли поместить класс A, B, C, D в отдельном пакете и сделать класс A не общедоступным.

0
ответ дан 7 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: