为什么这个代码行:
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.
答案 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
。
将javaApp.HashMap
重命名为其他内容。
在您的应用程序中使用完全限定名称,例如
javaApp.HashMap
Java 7+中的 你可以使用diamond operator <>
(类型推断),如
Map<String, Integer> phoneDirectory = new java.util.HashMap<String, Integer>();