在java中输入Casting

时间:2012-05-27 19:57:35

标签: java

int n ;
n= (int)( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));

为什么上面给出了错误[required int,found string],下面的一个工作正常?

int n ;
n= Integer.parseInt( javax.swing.JOptionPane.showInputDialog(null,"enter a 3 digit no."));

3 个答案:

答案 0 :(得分:9)

Integer.parseInt不使用强制转换,而是使用简单的算法将字符串中的数字解释为数字。转换由JVM直接在原始值或对象引用上的编译器上完成。它可以将4.5转换为4类型转换,因为它会更改基础值),ArrayList转换为List引用转换< / em>因为它不修改实例),但它本身不能parse or format numbers

答案 1 :(得分:8)

类型转换不是类型转换,不要混淆术语。转换意味着将相同的二进制表示重新解释为另一种类型的值。在Java中,转换,但仅限于原始数值之间。 String是一个引用类型,我猜你知道。

答案 2 :(得分:1)

Java只允许你制作有效的强制转换,即它知道如何制作。将字符串转换为int是没有意义的;解析它不是。