欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決java.lang.ClassCastException的java類型轉換異常的問題

 更新時間:2020年09月28日 10:22:54   作者:bdlaxx  
這篇文章主要介紹了解決java.lang.ClassCastException的java類型轉換異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在項目中,需要使用XStream將xml string轉成相應的對象,卻報出了java.lang.ClassCastException: com.model.test cannot be cast to com.model.test的錯誤。

原因:

項目中應該是采用了熱部署,devtools,因為累加載器的不同所以會導致類型轉換失敗

措施:

在pom.xml中將以下代碼注釋掉:

<dependency> 
 <groupId>org.springframework.boot</groupId> 
 <artifactId>spring-boot-devtools</artifactId> 
 <scope>runtime</scope> 
</dependency>

補充知識:TreeSet在add對象時報ClassCastException錯誤

TreeSet實現(xiàn)了SortedSet接口,可以對集合中的對象進行排序,但是在使用TreeSet時要注意一點,那就是要給TreeSet傳遞一個比較器,也就是指定比較規(guī)則,否則的話,它就不知道誰大誰小,也就不能排序了。此時它會報一個ClassCastException的異常。

jdk1.6文檔里add方法關于這個異常是這樣描述的

Throws:

ClassCastException - if the specified object cannot be compared with the elements currently in this set

翻譯:ClassCastException - 如果指定的對象不能與當前在此集合中的元素進行比較

public class TreeSetTest
{
  public static void main(String[] args)
  {
    MyComparator comparator = new MyComparator(); 

  // TreeSet<Student> set = new TreeSet<Student>(comparator);
  // 錯誤的代碼,少了比較器,運行則報下面的異常。
    TreeSet<Student> set = new TreeSet<Student>();

    Student s1 = new Student(50);
    Student s2 = new Student(70);
    Student s3 = new Student(40);

    set.add(s1);
    set.add(s2);
    set.add(s3);

    System.out.println(set);
  }
}

class Student 
{
  int score;

  public Student(int score)
  {
    this.score = score;
  }
  @Override
  public String toString()
  {
    // TODO Auto-generated method stub

    return String.valueOf(this.score);
  }
}
class MyComparator implements Comparator<Student>
{

  @Override
  //按分數高低比較,int為返回負數、零、整數,這里我寫的不咋好,但意思一樣
  public int compare(Student o1, Student o2)
  {
    // TODO Auto-generated method stub
    int result = 0;
    if(o1.score > o2.score)
    {
      result = 1;
    }else
    {
      result = -1;
    }

    return result;
  }
}

錯誤的運行結果:

Exception in thread "main" java.lang.ClassCastException: com.shengsiyuan2.Student cannot be cast to java.lang.Comparable
  at java.util.TreeMap.compare(TreeMap.java:1294)
  at java.util.TreeMap.put(TreeMap.java:538)
  at java.util.TreeSet.add(TreeSet.java:255)
  at com.shengsiyuan2.TreeSetTest.main(TreeSetTest.java:17)

解決辦法:

把 TreeSet set = new TreeSet(); 改成:TreeSet set = new TreeSet(comparator);即可。

以上這篇解決java.lang.ClassCastException的java類型轉換異常的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java之CountDownLatch原理全面解析

    Java之CountDownLatch原理全面解析

    這篇文章主要介紹了Java之CountDownLatch原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java 正則表達式入門詳解(基礎進階)

    Java 正則表達式入門詳解(基礎進階)

    最近看到很多同學想要學習java正則表達式的一些知識,那么腳本之家小編就為大家介紹一下,其實正則表達式實用性很強,處理大幅文字的時候都需要用得到,語法也大同小異
    2017-10-10
  • Java過濾器@WebFilter用法詳解

    Java過濾器@WebFilter用法詳解

    @WebFilter用于將一個類聲明為過濾器,該注解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署為過濾器,這篇文章主要給大家介紹了關于Java過濾器@WebFilter用法的相關資料,需要的朋友可以參考下
    2024-01-01
  • Spring?Cloud?Eureka基礎應用及原理

    Spring?Cloud?Eureka基礎應用及原理

    這篇文章主要介紹了Spring?Cloud?Eureka基礎應用,Eureka?Client中內置一個負載均衡器,用來進行基本的負載均衡,下面我們將通過搭建一個簡單的Eureka例子來了解Eureka的運作原理,感興趣的朋友一起看看吧
    2022-05-05
  • spring boot使用properties定義短信模板的方法教程

    spring boot使用properties定義短信模板的方法教程

    這篇文章主要給大家介紹了關于spring boot使用properties定義短信模板的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-01-01
  • 基于Spring定時任務的fixedRate和fixedDelay的區(qū)別

    基于Spring定時任務的fixedRate和fixedDelay的區(qū)別

    這篇文章主要介紹了基于Spring定時任務的fixedRate和fixedDelay的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java深入講解異常處理try?catch的使用

    Java深入講解異常處理try?catch的使用

    這篇文章主要介紹了Java異常處理機制try?catch流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-06-06
  • SpringBoot使用log4j2將日志記錄到文件及自定義數據庫的配置方法

    SpringBoot使用log4j2將日志記錄到文件及自定義數據庫的配置方法

    這篇文章主要介紹了SpringBoot使用log4j2將日志記錄到文件及自定義數據庫的配置方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Java switch()括號內參數的類型要求詳解

    Java switch()括號內參數的類型要求詳解

    這篇文章主要介紹了Java switch()括號內參數的類型要求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java.lang.Void 與 void的比較及使用方法介紹

    java.lang.Void 與 void的比較及使用方法介紹

    這篇文章主要介紹了java.lang.Void 與 void的比較及使用方法介紹,小編覺得挺不錯的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10

最新評論