无法定义和实例化HashMap?

时间:2015-09-07 04:08:42

标签: java exception dictionary casting hashmap

为什么这个代码行:

Map<String, Integer> phoneDirectory = new HashMap<String, Integer>();  

继续给我一个编译错误[Type HashMap does not take a parameter] 用空集<String, Integer>替换类型参数<>也会出现以下错误:

cannot infer type arguments for HashMap reason: cannot use <> with non-generic class HashMap.    

我试图删除参数集,但后来我需要将HashMap转换为Map类型对象,这会导致以下类转换异常:

[Exception in thread "main" java.lang.ClassCastException: javaApp.HashMap cannot be cast to java.util.Map at javaApp.HashMap.main]

我正在使用JDK1.8 API。请帮助。

更新1
使用import java.util.HashMap会导致以下编译错误:

HashMap is already Defined in this compilation unit.

2 个答案:

答案 0 :(得分:3)

您正在使用: javaApp.HashMap

你应该使用 的java.util.HashMap

http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

确保导入正确的hashmap。如果您将自己的HashMap类用于学术目的,那么您应该使用标准库。然后确保它实现Map: http://docs.oracle.com/javase/7/docs/api/java/util/Map.html

答案 1 :(得分:0)

您已创建自己的班级class MCTFruitGen: SKSpriteNode { var fruits = [MCTFruit]() var fruitTracker = [MCTFruit]() func startGeneratingFruitEvery(seconds: NSTimeInterval) { let callGenerateAction = SKAction.runBlock { () -> Void in self.generateFruit() } let waitOneSecond = SKAction.waitForDuration(seconds) let sequenceAction = SKAction.sequence([callGenerateAction, waitOneSecond]) let fruitGeneratorAction = SKAction.repeatActionForever(sequenceAction) self.runAction(fruitGeneratorAction, withKey: "fruitGenerator") } func stopGenerating() { self.removeActionForKey("fruitGenerator"); } func generateFruit() { // Your Code } func stopFruit() { stopGenerating() // Your Code } } ,可创建shadow java.util.HashMap

选项1

javaApp.HashMap重命名为其他内容。

选项2

在您的应用程序中使用完全限定名称,例如

javaApp.HashMap
Java 7+中的

你可以使用diamond operator <>(类型推断),如

Map<String, Integer> phoneDirectory = new java.util.HashMap<String, Integer>();