Невозможно сделать сопоставимый реализованный класс, сериализуемый

Устаревшие см. другое решение ниже, используя $ push $ each

Ваш пример близок, но вы хотите $ pushAll , а не $ нажмите , чтобы каждое добавление было добавлено отдельно (вместо того, чтобы нажимать другой массив на массив values):

var Kitten = db.model('Kitten', kittySchema);
Kitten.update({name: 'fluffy'},{$pushAll: {values:[2,3]}},{upsert:true},function(err){
        if(err){
                console.log(err);
        }else{
                console.log("Successfully added");
        }
});

2
задан HackChamp 17 January 2019 в 13:24
поделиться

1 ответ

Если вы хотите сериализуемый экземпляр FourTuple<K1,K2,K3,K4>:

  • Класс FourTuple должен быть сериализуемым => все в порядке
  • все атрибуты K1, K2, K3, K4 тоже должен быть сериализуемым => здесь это не гарантируется

Измените определение, чтобы получить проверку компилятором:

FourTuple <
    K1 extends Serializable,
    K2 extends Serializable,
    K3 extends Serializable,
    K4 extends Serializable
> implements Comparable<FourTuple>, Serializable 

см. этот SO raw-type [ 1110]

Изменить:

public boolean equals(FourTuple ft)
...
public int compareTo( FourTuple ft) 
...
FourTuple other = (FourTuple) obj;

на:

public boolean equals(FourTuple<K1,K2,K3,K4> ft)
...
public int compareTo( FourTuple<K1,K2,K3,K4> ft) 
...
FourTuple<K1,K2,K3,K4> other = (FourTuple<>) obj;
0
ответ дан Indent 17 January 2019 в 13:24
поделиться
Другие вопросы по тегам:

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