Mon*_*rlo 11 java runtime-error runtime
下面的代码确实编译,但为什么我会得到一个运行时异常?
String b = null;
System.out.println(b.getClass());
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
即使将对象设置为null,如何获取对象的类型?
编辑 我意识到没有对象存在,但仍然有一个String类型的对象b.即使它没有对象,它仍然有一个类型.如何获取对象的类型,无论它是否包含对象,或者它是否存在.
Sot*_*lis 14
当你有
String b = null;
Run Code Online (Sandbox Code Playgroud)
你实际上有什么是引用类型的变量String所引用null.您无法取消引用null以调用方法.
使用局部变量,您无法按照要求执行操作.
使用成员变量,您可以使用反射来查找字段的声明类型.
Field field = YourClass.class.getDeclaredField("b");
Class<?> clazz = field.getType(); // Class object for java.lang.String
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9834 次 |
| 最近记录: |