Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java - Check Not Null/Empty else assign default value

I am trying to simplify the following code.

The basic steps that the code should carry out are as follows:

  1. Assign String a default value
  2. Run a method
  3. If the method returns a null/empty string leave the String as default
  4. If the method returns a valid string set the String to this result

A Simple example would be:

    String temp = System.getProperty("XYZ");     String result = "default";     if(temp != null && !temp.isEmpty()){         result = temp;     } 

I have made another attemp using a ternary operator:

    String temp;     String result = isNotNullOrEmpty(temp = System.getProperty("XYZ")) ? temp : "default"; 

The isNotNullOrEmpty() Method

 private static boolean isNotNullOrEmpty(String str){     return (str != null && !str.isEmpty()); } 

Is it possible to do all of this in-line? I know I could do something like this:

String result = isNotNullOrEmpty(System.getProperty("XYZ")) ? System.getProperty("XYZ") : "default"; 

But I am calling the same method twice. I would be something like to do something like this (which doesn't work):

String result = isNotNullOrEmpty(String temp = System.getProperty("XYZ")) ? temp : "default"; 

I would like to initialize the 'temp' String within the same line. Is this possible? Or what should I be doing?

Thank you for your suggestions.

Tim

like image 903
Cam1989 Avatar asked Jul 14 '15 16:07

Cam1989


People also ask

Which has a default value of null Java?

Reference Variable value: Any reference variable in Java has a default value null.

Will return a default value when the optional instance is empty?

Java 8 – Optional orElse() and orElseGet() methods These two methods orElse() and orElseGet() returns the value of Optional Object if it is no empty, if the object is empty then it returns the default value passed to this method as an argument.


1 Answers

Use Java 8 Optional (no filter needed):

public static String orElse(String defaultValue) {   return Optional.ofNullable(System.getProperty("property")).orElse(defaultValue); } 
like image 83
nobeh Avatar answered Sep 17 '22 20:09

nobeh