访问LinkedHashMap中最后一个对象中的方法

Br*_*ian 4 java arrays hashmap linkedhashmap bluej

我有一个LinkedHashMap包含一个对象at key和一个at value.

我用过了代码

yourShots.keySet().toArray()[yourShots.size()-1]
Run Code Online (Sandbox Code Playgroud)

返回的最后一个对象keys.但是,我无法访问该对象具有的方法.

我已经使用该getClass()方法确定我确实拥有正确类型的对象,但无法调用该方法.我只是得到了无法找到该方法的错误.

难道我做错了什么?

Mạn*_*yễn 9

toArray给你通用Object类型.key在使用它之前,你必须把它投射到你的班级.

KeyClass key = (KeyClass) yourShots.keySet().toArray()[yourShots.size()-1];
// Here you can access your desired method
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@rgettman建议的那样,您可以使用重载版本toArray(T[])来避免强制转换.在这种情况下,您应该提供一个keySet()预先确定大小的初始化数组.