本文目錄一覽:
java中類型轉換異常問題
這有點像下面這道面試題原理
Father father = new Son();
Son son = (Son)father;
//以下出錯,ClassCastException
Father father = new Father();
Son son = (Son) father;
在第一個例子中,father被指向一個子類對象,子類也可以指向子類對象。而第二個例子中,father被傳給一個父類對象,子類引用不能指向父類對象。即很重要的概念是:父類引用指向子類對象。將父類轉換為子類之前,應該用instanceof檢查。
你直接new 父類對象 子類來強轉就會CCE
望採納 謝謝~
如何解決java中數據類型轉換異常?
數據類型轉換異常即ClassCastException,在Java應用程序中,有時候需要對數據類型進行轉換。這個轉換包括顯示的轉換與隱式的轉換。不過無論怎麼轉換,都必須要符合一個前提的條件,即數據類型的兼容性。如果在數據轉換的過程中,違反了這個原則,那麼就會觸發數據類型轉換異常。如現在在應用程序中,開發人員需要將一個字符型的日期數據轉換為數據庫所能夠接受的日期型數據,此時只需要在前台應用程序中進行控制,一般不會有問題。但是,如果前台應用程序缺乏相關的控制,如用戶在輸入日期的時候只輸入月、日信息,而沒有年份的信息。此時應用程序在進行數據類型轉換的時候,就會出現異常。 數據類型轉換異常在應用程序開發中使一個出現的比較多的異常,也是一個比較低級的異常。因為大部分情況下,都可以在應用程序窗口中對數據類型進行一些強制的控制。即在數據類型進行轉換之前,就保證數據類型的兼容性。如此的話,就不容易造成數據類型的轉換異常。如在只允許數值類型的字段中,可以設置不允許用戶輸入數值以外的字符。雖然說有了異常處理機制,可以保證應用程序不會被錯誤的運行。但是在實際開發中,還是要儘可能多的預見錯誤發生的原因,盡量避免異常的發生。
Java強制類型轉換的疑惑
我們一般把java類型分為編譯時類型與運行時類型。java程序運行後,對象的類型就不會發生改變。而強制類型轉換隻不過是用某種類型去引用內存中的實體,這種類型只是編譯時類型,與運行後的實體並沒有聯繫
java中類型轉換問題
B 是因為String是引用類型,而int是值類型,所以不能進行比較
C i+s 使用一個整形加一個字符串,這是不允許的,A 正確是因為,字符串在+號的前面,則會調用String類內重寫的+運算符,是相當於用s和i拼接了一個新的字符串
D +號後面缺少參數,如果這裡用++那就對了
E 沒有問題三目運算符,判斷字符串是否為空,為空則i=0 不為空則i等於字符串的長度
java 強制類型轉換的規則是什麼?
1、執行算術運算時,低類型(短字節)可以轉換為高類型(長字節);例如: int型轉換成double型,char型轉換成int型等等;
2、賦值表達式中,等號右邊表達式的值的類型自動隱式地轉換為左邊變量的類型,並賦值給它;
3、函數調用時,將實參的值傳遞給形參,系統首先會自動隱式地把實參的值的類型轉換為形參的類型,然後再賦值給形參;
4、函數有返回值時,系統首先會自動隱式地將返回表達式的值的類型轉換為函數的返回類型,然後再賦值給調用函數返回。
擴展資料
C++中強制類型轉換函數有4個:
1、const_cast(用於去除const屬性)。
2、static_cast(用於基本類型的強制轉換)。
3、dynamic_cast(用於多態類型之間的類型轉換)。
4、reinterpreter_cast(用於不同類型之間的指針之間的轉換,最常用的就是不同類型之間函數指針的轉換)。
隱式類型轉換髮生在賦值表達式和有返回值的函數調用表達式中。
在賦值表達式中,如果賦值符左右兩側的操作數類型不同,則將賦值符右邊操作數強制轉換為賦值符左側的類型數值後,賦值給賦值符左側的變量。
在函數調用時,如果return後面表達式的類型與函數返回值類型不同,則在返回值時將return後面表達式的數值強制轉換為函數返回值類型後,再將值返回。
參考資料
百度百科-強制類型轉換
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/286598.html