2011-12-20 4 views
2

Я работаю на Java и хочу конвертировать Object в int.Как преобразовать объект в int в Java?

я:

Collection c = MyHashMap.values(); 
    Object f = Collections.max(c); 
    int NumOfMaxValues = Integer.parseInt(f); 

Но это не работает. В нем говорится: No suitable method for parseInt.

Как это исправить?

+2

Что фактический тип 'f'? – harold

+2

Посмотрите на документы java для [parseInt] (http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html) сначала! – CoolBeans

+1

Что вы вставляете в эту карту хэша? Являются ли они целыми числами? Если это так, просто Collection c = MyHashMap.values ​​(); – Tom

ответ

9
Integer.parseInt() 

ожидает String. Вы можете использовать

Integer.parseInt(f.toString()) 

и переопределить метод toString() в своем классе.

+0

спасибо, что это сработало! – programmer

+1

@programmer. Рад помочь. Убедитесь, что метод toString() возвращает допустимое целое число в виде строки, иначе исключение будет вызывать parseInt(). –

+0

Я использую System.out.println(), и он выводит и целое число. Это не вызвало никаких исключений, поэтому его штраф. Спасибо. – programmer

1

Вы не можете просто преобразовать любой объект в int. Как это должно работать. Думайте о таком классе:

class Car { 
    public String name; 
    public String owner; 
} 

Вам необходимо определить метод самостоятельно. Или вам нужно выяснить, какой конкретный объект и как его преобразовать.

2

В идеале, вы должны использовать дженерики в свою пользу, и есть что-то вдоль линий ниже:

Map<Object,Integer> myHashMap = new HashMap<Object,Integer>(); 
Collection<Integer> values = myHashMap.values(); 
Integer value = Collections.max(values); 
if (value != null) 
{ 
    int myInt = value; 
} 
+0

спасибо, это действительно полезно – programmer

Смежные вопросы