小编Ala*_*eet的帖子

值为null的引用类型?

根据: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();
}
Run Code Online (Sandbox Code Playgroud)

如果需要,我不会反对使用泛型来获取类型T而不是Object声明的参数类型.

编辑:我知道它.getClass()适用于实例,而不是声明的类型.我想知道是否可以询问引用它的声明类型.由于类层次结构是静态的,因此获取该信息应该没有问题.

编辑2:在这里,情况很清楚:Java是"通过引用传递"还是"按值传递"?
Java只是按值传递,因此即使使用了引用类型,也总是处理它,就好像传递了值(对象实例)一样(即使内部只传递了一个对象指针).这意味着Java实际上并没有一个知道它的类型的引用类型(至少就程序员而言),它都在值实例中.
因此,无法确定任何null值的类型.

java null reference-type

9
推荐指数
2
解决办法
1万
查看次数

如何在Java中将任何数组作为参数传递?

如何编写一个接受任何类型的数组(包括基元)作为参数的方法?

例如,我希望以下两个调用都能正常工作:

int[] intArray = {1, 2, 3};
String[] strArray = {"1", "2"};

hasSize(intArray, 3);
hasSize(strArray, 2);
Run Code Online (Sandbox Code Playgroud)

我到目前为止最接近的是:

public static <T> boolean hasSize(T[] array, int expectedSize)
{
    return (array.length == expectedSize);
}
Run Code Online (Sandbox Code Playgroud)

...但这不适用于原语.

java arrays parameters

7
推荐指数
1
解决办法
2788
查看次数

标签 统计

java ×2

arrays ×1

null ×1

parameters ×1

reference-type ×1