The following code does compile, but why do I get a run time exception?
String b = null;
System.out.println(b.getClass());
Error I get is
java.lang.NullPointerException
How can I get the type of the object even if it's set to null?
Edit I realize there is no object present, but there still is an object b of type String. Even if it holds no object, it still has a type. How do I get at the type of an object, regardless of if it holds an object or if it does not.
In JavaScript null is "nothing". It is supposed to be something that doesn't exist. Unfortunately, in JavaScript, the data type of null is an object. You can consider it a bug in JavaScript that typeof null is an object.
In order to check whether a Java object is Null or not, we can either use the isNull() method of the Objects class or comparison operator.
The value null represents the intentional absence of any object value. It is one of JavaScript's primitive values and is treated as falsy for boolean operations.
it has one value: null. it does not have a constructor.
When you have
String b = null;
what you actually have is a variable of reference type String
that is referencing null
. You cannot dereference null
to invoke a method.
With local variables you cannot do what you are asking.
With member variables, you can use reflection to find the declared type of the field.
Field field = YourClass.class.getDeclaredField("b");
Class<?> clazz = field.getType(); // Class object for java.lang.String
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With