public static int toInt(Object a)
{
return (int) a;
}
public static Object tInput()
{
return read.nextLine();
}
当我尝试
时public static void main (String []args)
{
System.out.println( toInt(tInput()) );
}
我得到了一个类强制转换异常 - 即使我输入数字!整数!
我不知道我做错了什么。有人可以帮忙吗?
==== EDIT ====
人们说我不能施展它,因为它是一根绳子
我尝试了另一种方法,这很有效
谁能解释一下?
public static void check()
{
Object h = 2014;
int a = (int) h;
System.out.println(a);
}
答案 0 :(得分:2)
read.nextLine(); //returns a string.
你不能将字符串转换为整数,所以我会使用Integer.parseInt(str)
首先将字符串解析为整数,然后进行转换。尝试将tInput()方法更改为以下方法
public static Object tInput()
{
return Integer.parseInt(read.nextLine());
}
如果需要,请查看Java Doc for Integer.parseInt(String)
答案 1 :(得分:1)
Strings
不是Integers
(尤其不是ints
)。你不能施放它们,你需要转换。可以通过String
Integer.parseInt(myString)
转换为int
答案 2 :(得分:1)
您无法将String
投射到int
。
试试这个:
int myInt = Integer.valueOf(tInput().toString());
return myInt;
答案 3 :(得分:1)
public static int toInt(Object obj)
{
return Integer.parseInt((String) obj);
}
public static void main (String []args)
{
System.out.println( toInt(tInput()) );
}
答案 4 :(得分:1)
如果您的对象是String,就像在这种情况下您可以使用:
int i = Integer.valueOf((String) object);
如果你的对象是一个整数,你可以说它:
int i = (Integer) object;
这两种方法都存在异常风险,因此您需要相应处理。