Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Παιδες ασχετος με Java αλλα λυστε μου μια απορια:

Αυτο εαν το item ή το array _ignoredBy δεν υπαρχει, θα σκασει;

 

ctx._source._ignoredBy.removeIf(item -> item.user == params.by.user)

 

εχω κανει μια σχετικη ερωτηση εδω για οποιον θελει περισσοτερο context:

https://stackoverflow.com/questions/66209730/elasticsearch-failed-to-execute-script

Δημοσ. (επεξεργασμένο)
33 λεπτά πριν, woopsi είπε

Αν είναι null, τότε ναι λογικά πρέπει να πετάξει NullPointerException

Ποιο ομως αν ειναι null? Το item ή το ignoredBy?

Επεξ/σία από Predatorkill
Δημοσ.
Μόλις τώρα, Predatorkill είπε

Ποιο ομως αν ειναι null? Το item ή το ignoredBy?

Kαι τα 2 θεωρητικά δεν μπορούν να είναι; Οπότε το ίδιο ισχύει και γαι τα 2

  • Thanks 1
Δημοσ.

Γενικά σε οτιδήποτε είναι property/method ενός object (ή πιο μπακάλικα όταν πας να καλέσεις κάτι με την τελεία (.) myObject.objectMethod(anyArg))
και πας να το καλέσεις απο ένα null object θα σου σκάσει. Στη περίπτωση σου:

._source μπορει να πετάξει NPE εάν το ctx  είναι null
._ignoredBy μπορεί να πετάξει NPE εάν το ._source είναι null
.removeIf() εάν το ._ignredBy είναι null
.user εάν το item είναι null
.by αν το params είναι null
.user εάν το .by είναι null

  • Like 1
Δημοσ.

Σας ευχαριστω παιδια! Στην js παντως δεν θα εσκαγε το item.user, αυτο ηθελα να ξεκαθαρισω, αν οταν το ignoredBy ειναι αδειο (not null) εαν το item.user σκαει. Απο οτι φαινεται αυτο που απαντησε ο τυπας στο so ειναι η λυση στο θεμα.

Δημοσ.

Η Java αν θυμαμαι δεν εχει null coalesce operator οποτε αναγκαστικά γραφεις τους ελεγχους.

Σε C# πχ θα μπορουσες να γραψεις (λιγο τραβηγμενο το παράδειγμα)

ctx?._source?._ignoredBy?.removeIf(item -> item?.user == params?.by?.user)

Untyped είναι η js και δεν την νοιαζει τιποτε, καταλήγεις να ψάχνεις τι είναι undefined. Απλα συνεχίζει η εκτέλεση σα να μη συμβαίνει τίποτα 🙃

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...