public static int toInt(Object a)
{
return (int) a;
}
public static Object tInput()
{
return read.nextLine();
}
当我尝试如何通过方法将对象转换为int?
public static void main (String []args)
{
System.out.println(toInt(tInput()));
}
我得到一个类转换异常 - 即使我在数字输入!整型!
我不知道我在做什么错。谁能帮忙?
====编辑====
人们说我不能施放它,因为它是一个字符串。
我试过这种方法,这个工作。
有人可以解释吗?
public static void check()
{
Object h = 2014;
int a = (int) h;
System.out.println(a);
}
什么是'read'和'nextLine'返回的是什么? – rgettman
编辑中的代码工作原因是存储在'h'中的对象的运行时类型是'int'。你用来引用它的引用'h',是一个可以包含任何'Object'的引用。既然你给它赋了一个'int'值,那么你可以将它转换为'int',因为你正在将'int'转换为'int'。如果相反你做'对象h =“嗨,妈妈!”; int a =(int)h;'那么你会得到一个类转换异常,因为你正试图将'String'转换为'int'。 –
没有将任意对象“铸造”为“int”的常用方法。 “cast”操作声明被引用的变量具有被转换为的类型,或者(仅在基元的情况下)可以使用明确定义的技术转换为该类型。你显然想要做的是将一个字符串转换为int。在这种情况下,将参数声明为String并使用Integer.parseInt。将参数声明为Object只会延迟到运行时间,这可能会在编译时检测到错误。 –