根据:
http: //java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html
4.5.2 引用类型的变量
引用类型可以持有一个null
引用。
当赋值为 时,是否可以检索引用类型的声明类型null
?
具体来说,在使用反射的方法中,我希望该方法是 null 安全的并作用于原始声明的类型(尽管我知道以下代码片段不起作用),例如:
String referenceType = null;
MyReflectionClass.reflectionMethod(referenceType);
...
public static void reflectionMethod(Object referenceType) {
Class<?> declaredType = referenceType.getClass();
}
如有必要,我不会反对使用泛型来拥有类型T
而不是Object
声明的参数类型。
编辑:我知道这.getClass()
适用于实例,而不是声明的类型。我想知道是否可以询问它声明的类型的引用。由于类层次结构是静态的,因此获取该信息应该没有问题。
Edit2:在这里,情况很清楚:Java是“按引用传递”还是“按值传递”?
Java 只是按值传递,所以即使使用了引用类型,它也总是像传递值(对象实例)一样被处理(即使内部只传递一个对象指针)。这意味着Java实际上并没有一个知道它的类型的引用类型(至少就程序员而言),它都在值实例中。
因此不可能确定任何null
值的类型。