I’m curious if there are things in the standard class library that you find useful but not widely used.

  • JackbyDevOPM
    link
    English
    21 year ago

    I’ve waffled on it. Currently my opinion is to use whatever nullable annotation the project uses (if any, otherwise JetBrains’s). Essentially, I’m not sure if the official recommendation to avoid Optional for uses other than return types has reasoning I’m missing.

    I do use it like this though and lament that we don’t have an Elvis operator (?:)

    Optional.ofNullable(thingThatMightBeNull).map(e -> e.someMethod()).orElse(null);
    
    • @[email protected]
      link
      fedilink
      English
      11 year ago

      Instead of wrapping it in an optional you can do Objects.requireNonNullElse(value, defaultValue)

      • @austin
        link
        English
        1
        edit-2
        1 year ago

        Optional has more syntactic sugar for more complex scenarios / functional call chaining that prevents repetitive if checks

        Optional.ofNullable(myObj)
          .map(MyClass::getProperty)
          .map(MyOtherClass::getAnotherProperty)
          .filter(obj -> somePredicate(obj))
          .orElse(null)
        

        This is completely null safe, the function calls are only made if the object is not null