有過C++開發經驗的人會發現,我們可以將0作為false,非零作為true。一個函數即使是bool類型的,但是我們還是可以返回int類型的,並且自動將0轉換成false,非零轉換成true。代碼實例如下:
1 #include<iostream> 2 #include<stdlib.h> 3 using namespace std; 4 5 bool fun()//函數返回類型是bool,但是我們在函數中可以返回int類型。 6 { 7 return 1; 8 } 9 10 void main() 11 { 12 int a=1; 13 if(a)//a是int類型的,但是可以作bool類型來使用。 14 { 15 cout<<"C++是非類型安全的。"<<endl; 16 } 17 system("pause"); 18 }
但是,在java中,我們就不能這樣使用了,java中不能做到int類型轉bool類型,比如以下代碼:
public class TypeSafeTest { public static void main(String[] args) { int i=1; if(i) { System.out.println("java是類型安全語言"); } } }
執行上述代碼會報如下錯誤:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Type mismatch: cannot convert from int to boolean
at TypeSafeTest.main(TypeSafeTest.java:4)
上述錯誤表明在java中int類型不能在自動轉變成bool類型了。這就是類型安全的意思。
