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', является ссылкой, которая может содержать любой« объект ». Поскольку вы присваиваете ему значение 'int', вы можете передать его в' int' без проблем, потому что вы вводите 'int' в' int'. Если вместо этого вы делаете 'Object h =" Привет мама! "; int a = (int) h; ', тогда вы получите исключение класса, потому что вы пытаетесь применить' String' к 'int'. –
Не существует общепринятого метода для «отливки» произвольного объекта в 'int'. Операция «литье» утверждает, что ссылочная переменная относится к типу, который применяется к (или только в случае примитивов), может быть преобразован в этот тип с помощью четко определенных методов. То, что вы, по-видимому, хотите сделать, это преобразовать String в int. В этом случае объявите параметр String и используйте Integer.parseInt. Объявление параметра как объекта просто задерживает до тех пор, пока время выполнения не будет обнаружено во время компиляции. –