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."));
答案 0 :(得分:9)
Integer.parseInt
不使用强制转换,而是使用简单的算法将字符串中的数字解释为数字。转换由JVM直接在原始值或对象引用上的编译器上完成。它可以将4.5
转换为4
(类型转换,因为它会更改基础值),ArrayList
转换为List
(引用转换< / em>因为它不修改实例),但它本身不能parse or format numbers。
答案 1 :(得分:8)
类型转换不是类型转换,不要混淆术语。转换意味着将相同的二进制表示重新解释为另一种类型的值。在Java中,是转换,但仅限于原始数值之间。 String是一个引用类型,我猜你知道。
答案 2 :(得分:1)
Java只允许你制作有效的强制转换,即它知道如何制作。将字符串转换为int是没有意义的;解析它不是。