Java通用意外令牌

时间:2015-03-26 04:20:16

标签: java class generics

我有一个泛型类“Property”,我想把它放在一个HashMap中,但是我得到一个"Unexpected token: >"错误。 我正在使用Processing 2.2.1。

class MouseEvent extends Event{
  HashMap<String, Property> Args;
  MouseEvent(String type){
    Args = new HashMap<String, Property>();
    Args.put("mouseX", new Property<int>(mouseX)); //throws unexpected token
    Args.put("mouseY", new Property<int>(mouseY));
    Args.put("Button", new Property<int>(mouseButton));
    Args.put("Type", new Property<String>(type));
  }
}


class Property<T>{
  private T val;
  Poperty(T v){
    val = v;
  }
  void Set(T v){
    val = v;
  }
  T Get(){
    return val;
  }
}

我在这里误解了什么? :/

1 个答案:

答案 0 :(得分:3)

您不能使用int等原始数据类型作为泛型类型。您必须使用相应的对象,即Integer

将您的代码更改为

Args.put("mouseX", new Property<Integer>(mouseX));

另请注意遵循java命名约定。变量/方法名称应该是驼峰式的

HashMap<String, Property> args;
args = new HashMap<String, Property>();
//...