Java 相同類型強制轉換異常


版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/u010750497/article/details/88728802

springboot 出現兩個相同的類強轉類型報錯 java.lang.ClassCastException


插翅難飛

今天出現了一個令我感到驚奇的問題

Java 強轉類型,相信大家並不陌生,通常來說,強轉類型都是我們知道這個類可以轉換成另一個類,可能是他的父類或者是他的同類,這樣轉換一般來說千百年都不會出錯。例如下面的

//Father 是 son 的父類
Father father = new Son();
Son son = (String)father;

    
    
    
            
   
   
   
           
  • 1
  • 2
  • 3
  • 4

上面這種方式當然是沒有問題的,但是當引用類型的真實身份是父類本身的類型時,強制類型轉換就會產生錯誤。例如:

//Father 是 son 的父類
Father father = new Father();
Son son = (String)father;

    
    
    
            
   
   
   
           
  • 1
  • 2
  • 3
  • 4

通常我們在不確定是不是可轉的時候,我們會使用instanceof 關鍵字來判斷一下,避免出錯的情況。例如:

//Father 是 son 的父類
Father father = new Father();
//當滿足條件的時候就可以強轉了,否則我就不執行
if(father instanceof Son){
	Son son = (String)father;
}

    
    
    
            
   
   
   
           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

是時候打破常規了

給大佬遞可樂
隨着框架的普及,現在很多人都用上了springboot,也引入了越來越多的包,這個時候就很可能會出現包沖突,或者類型引用錯誤,或者對現有的一些代碼造成影響,在這里,我遇到了自己人強轉自己人報錯的問題,也就是本文的重點“ java.lang.ClassCastException”

spring boot 項目中如果引入了 spring的devtools 包,就經常會產生這個問題,這個坑我找了幾個小時。

runtime("org.springframework.boot:spring-boot-devtools:${springBootVersion}")

    
    
    
            
   
   
   
           
  • 1

這個包如果用的不熟的話,找問題找起來就很費勁了,好了,各位晚安,願天下代碼無bug.

/**
 *      ┌─┐       ┌─┐ + +
 *   ┌──┘ ┴───────┘ ┴──┐++
 *   │                 │
 *   │       ───       │++ + + +
 *   ███████───███████ │+
 *   │                 │+
 *   │       ─┴─       │
 *   │                 │
 *   └───┐         ┌───┘
 *       │         │
 *       │         │   + +
 *       │         │
 *       │         └──────────────┐
 *       │                        │
 *       │                        ├─┐
 *       │                        ┌─┘
 *       │                        │
 *       └─┐  ┐  ┌───────┬──┐  ┌──┘  + + + +
 *         │ ─┤ ─┤       │ ─┤ ─┤
 *         └──┴──┘       └──┴──┘  + + + +
 *                神獸保佑
 *               代碼無BUG!
 */

    
    
    
            
   
   
   
           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

即使沒有人為你鼓掌也要優雅的謝幕

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
                </div>

posted on 2019-11-03 03:24  DiligentCoder  閱讀(797)  評論(1編輯  收藏


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM