本文目錄一覽:
JAVA如何進行強制類型轉換?
如果這2種類型是兼容的,那麼Java 將自動地進行轉換。
如果這2種類型是兼容的,那麼Java 將自動地進行轉換。例如,把int 類型的值賦給long類型的變量,總是可行的。
然而,不是所有的類型都是兼容的。因此,不是所有的類型轉換都是可以隱式實現的。例如,沒有將double 型轉換為byte 型的定義。
幸好,獲得不兼容的類型之間的轉換仍然是可能的。要達到這個目的,你必須使用一個強制類型轉換,它能完成兩個不兼容的類型之間的顯式變換。讓我們看看自動類型轉換和強制類型轉換。
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後面表達式的數值強制轉換為函數返回值類型後,再將值返回。
參考資料
百度百科-強制類型轉換
Java強制類型轉換
原因有如下:
Object數組中可以存儲int ,string, class等類型,對於計算機來說它不清楚用戶最終存儲的是什麼類型的數據,例如可以存儲:
mm[0] = new String(“123”);
mm[1] = new MyClass();
如果存儲以上數據類型,那麼你強制轉換就是失敗的,Object數組存儲未知類型,所以無法強制轉換某一固定類型的數據,強制轉換就會異常。
針對Object數組中某一個具體數據進行強制轉換時,可以根據存儲的實際類型進行轉換處理,能夠正常進行,所以是正確的。
以上的說明希望你能明白。
JAVA如何進行強制類型轉換
轉型有兩種: 向上轉型和向下轉型(強制轉型)
兩種分別如下:
一種是向上轉型
對於基礎數據類型 , 可以自動轉型 ,比如:
int a = 10;
long b = a;
這裡就是把int型轉成了long型 , 因為 long範圍比int大 , 這樣的轉型不會有任何影響 , 所以可以自動轉型
又比如 A a = new B();
其中 A 是B 的父類 , 這也是多態 , 就是父類的對象指向子類的引用 , 你調用a對象 , 實際上是B的類 , 但是B繼承A , 擁有A的一切屬性和方法 (不談複寫)
第二種是向下轉型 , 也就是強制
這種需要強轉 , 比如
long a = 10 ;
int b = (int) a;
通過 (int)可以強制轉型 , 但是這樣會丟失精度 , 比如a如果超過了b的範圍 , 那麼強轉成int型, 只會等於int的最大值
又比如 :
B b = new A(); 這樣是不行的 , 需要有中間途徑 , 比如
A a = new A(); Object obj = a; B b = (A) a;
而這種強轉 , 又有要求 , 必須是同類型 , 也就是說 A 就是B , 不然會報錯.
不同類型之間如果要轉型 , 需要通過中間途徑 , 比如JSON , 將A轉成JSON串 , 然後再轉換為B
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180219.html