如何通过方法将对象转换为int?

时间:2014-01-27 21:03:30

标签: java object casting int

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);
}

5 个答案:

答案 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)

Integer#parseInt

答案 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;

这两种方法都存在异常风险,因此您需要相应处理。