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

Java removeIf


Predatorkill

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

Παιδες ασχετος με 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
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Γενικά σε οτιδήποτε είναι 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. Απλα συνεχίζει η εκτέλεση σα να μη συμβαίνει τίποτα 🙃

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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