2011-12-20 46 views
2

我在Java中工作,我想一个Object转换为int如何将对象转换为Java中的int?

我做的:

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

但它不工作。它说: No suitable method for parseInt.

我该如何解决呢?

+2

什么是'F'的实际类型? – harold 2011-12-20 18:13:19

+2

讨论Java文档的[parseInt函数(http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html)第一! – CoolBeans 2011-12-20 18:14:10

+1

你在那个哈希映射中插入了什么?他们是整数吗?如果是这样,只需Collection c = MyHashMap.values(); – Tom 2011-12-20 18:14:11

回答

9
Integer.parseInt() 

预计String。您可以使用

Integer.parseInt(f.toString()) 

并覆盖您班级中的toString()方法。

+0

感谢它的工作! – programmer 2011-12-20 18:20:15

+1

@programmer。乐意效劳。确保toString()方法返回一个有效的整数作为字符串,否则parseInt()将引发异常。 – 2011-12-20 18:24:03

+0

我使用System.out.println()和它的输出和整数。它没有抛出任何异常,所以其fine.Thanks – programmer 2011-12-20 18:34:20

1

你不能只是任何对象转换为int。应该如何工作。想想像这样的一个类:

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

你需要自己定义一个方法。或者你必须找出什么是特定对象以及如何转换它。

1
Integer.parseInt(f.toString()); 
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 2011-12-20 19:35:52