java中的类型转换问题

①ClassCastException
②错误:不兼容的类型

这两有什么区别?如何判断何种情况下跑出哪一个呢?

既然是Exception,编译的时候肯定发现不了啦。
只能程序跑的的时候抛出。
一般都是因为使用父类或者接口类型做变量的类型的时候在进行转型时候发生

例如 Object obj = factory.createString()
在应用的时候却用 Integer it = (Integer)obj

②错误:不兼容的类型
首先编译的时候可以发现这个错误的信息

至于运行的时候,一般是①ClassCastException

1、String 转换成 int
         使用函数Integer.parseInt(s, radix),其中s为字符串,radix为基,设置为10表示10进制,16表示十六进制。
例如: String s="53c015";
int i = Integer.parseInt(s,
16);
System.out.println(i);
//输出548866
2、Stri......
答案就在这里:java 中类型转换问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

ClassCastException,这是运行期错误,A不能转成B,你非得这么干

类型不兼容,你对A赋值B,但他俩不是一个东西,也没有继承关系

我也觉得是类型不兼容问题

ClassCastException:出现在强制类型转换的时候
不兼容的类型:出现在将一个其他类型的值赋给一个不属于他的类型的变量

 第一个是运行时错误,第二个是编译期错误。

比如
class A { ... }
class B extends A { ... }
class C extends A { ... }

你这么写:
B b = ...
C c = (C)b; //编译就能发现。

A a = ... //既可以 A a = new A(); 也可以 A a = new B(); 还可以 A a = new C();
C c = (C)a; //这个可能可以可能不可以,在运行时才知道。只有上面一行A a = new C(); 才能转换