Why is the code below returning null, instead of true?
I can see that the property is being set based on the {TEST=true} output.
Java code:
import java.util.Properties;
public class Test {
public static void main(String[] args) {
System.out.println("1");
Properties props = new Properties();
props.put("TEST", true);
System.out.println(props);
System.out.println(props.getProperty("TEST"));
System.out.println("2");
}
}
Program output:
1
{TEST=true}
null
2
Use
setProperty()instead ofput().getProperty()andsetProperty()operate on Strings. See the JavaDoc, here: https://docs.oracle.com/javase/9/docs/api/java/util/Properties.html#setProperty-java.lang.String-java.lang.String-If you look at the source code for the
Propertiesclass, you should see that it does aninstanceofcheck on the value of the property that it retrieves ingetProperty(). If the property value is not a String, it returnsnull.