结论:
null 的类型是<nulltype>
结论适用场景:
java
证明过程:
//: Code segment 1
============================================================
String str;
int i = str;
------- 编译/运行结果 -------
TestNull.java:39: 不兼容的类型
找到: java.lang.String <------------ 类型
需要: int
int it = s;
^
1 错误
Obejct obj;
int i = obj;
------- 编译/运行结果 -------
TestNull.java:39: 不兼容的类型
找到: java.lang.Object <------------ 类型
需要: int
int it = obj;
^
1 错误
int i = null;
------- 编译/运行结果 -------
TestNull.java:39: 不兼容的类型
找到: <nulltype> <------------- 类型
需要: int
int it = null;
^
1 错误
///:~End of Code segment 1
//:Code segment 2 ()
============================================================
class A {
}
public class TestNull {
public void prt(int i){
System.out.println("int");
}
public void prt(float f){
System.out.println("float");
}
public void prt(Object o){
System.out.println("obj");
}
public void prt(String s){
System.out.println("String");
}
public void prt(Integer inte){
System.out.println("integer");
}
public void prt(A a){
System.out.println("AAAA");
}
public static void main(String[] args){
TestNull tn = new TestNull();
A a = null;
Integer inte = null;
String s = null;
Object obj = null;
tn.prt(s);
tn.prt(obj);
tn.prt(inte);
tn.prt(a);
}
}
------- 编译/运行结果 -------
obj
obj
obj
obj
obj
------- 结论 -------
null 作为值赋给对象时,会被自动转化为Object类型
///:~End of Code segment 2
//:Code segment 3
============================================================
if(judge){
System.out.println("Yes, null is an Object.");
}else{
System.out.println("No, null isn't an Object.");
}
------- 编译/运行结果 ------- No, null isn't an Object. ------- 结论 -------
null本身并不是Object类型,从而佐证了Code segment 2的结论,会出现那样的运行结果是被转化的原因。
///:~End of Code segment 3
综上所述,java中的null 的类型是<nulltype>.