Вы можете использовать агрегацию ниже 3,6 и выше.
db.colname.aggregate(
[{"$project":{
"loop":{
"$reduce":{
"input":"$loop",
"initialValue":{},
"in":{"$mergeObjects":["$value","$this"]
}
}
}
}}]
)
Дайте класс A
конструктор с доступностью уровня пакета (и никакие другие конструкторы).
Спасибо, Dave L., для бита ни о каких других конструкторах.
Вы, вероятно, хотите перечисление (Java> = 1.5). Перечислимый тип может иметь ряд фиксированных значений. И это имеет всех положительных героев класса: они могут иметь поля и свойства, и могут заставить их реализовать интерфейс. Перечисление не может быть расширено.
Пример:
enum A {
B,
C,
D;
public int someField;
public void someMethod() {
}
}
Вы могли поместить класс A, B, C, D в отдельном пакете и сделать класс A не общедоступным.