java – 值为null的引用类型类型?
根据:
http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html 4.5.2参考类型的变量 引用类型可以保存空引用. 当分配的值为空时,是否可以检索引用类型的声明类型? 具体来说,在使用反射的方法中,我希望该方法是无效的,并且对原始声明的类型进行操作(虽然我知道以下代码段不起作用),例如: String referenceType = null; MyReflectionClass.reflectionMethod(referenceType); ... public static void reflectionMethod(Object referenceType) { Class<?> declaredType = referenceType.getClass(); } 如果需要,我不会厌恶使用泛型类型T而不是Object作为声明的参数类型. 编辑:我知道.getClass()在实例上工作,而不是声明的类型.我想知道是否有可能要求引用它的声明类型.由于类层次结构是静态的,因此获取该信息应该没有问题. 编辑2:这里情况明确:Is Java “pass-by-reference” or “pass-by-value”? 解决方法
在一个单词中,不.尽管如此,尝试找到空引用的成员并不是很有意义的,因为null意味着没有任何东西.你可能最好不要将空作为输入,可能是抛出NullPointerException.
如果你必须处理null,也许最好的方法是明确地传递类引用(或者更好的是直接引用所讨论的方法). public static void reflectionMethod(Object param,Class<?> referenceType) // null is dis-allowed for referenceType { // ... no need to try to back-track the type from an object } 如果你只能得到空值,这是很难的(不可能,除非有其他限制)做得比做一个非常幸运的猜测要好得多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |