当我尝试声明一个词典这样:

private Dictionary<String, int> map;

编译器给我以下错误:

  令牌“INT”

语法错误,尺寸预期这个令牌之后

但它正常工作与Integer。我隐约知道Java的治疗int / Integer不同(我来自一个.NET背景),但我希望有人可以给我我为什么不能在一个字典<>

使用原语的完整解释

其他提示

在净,“原始”类型由对象支持。在Java中,有原始类型和对象之间的硬之分。 Java 5引入自动装箱,它可以在某些情况下,两者之间的要挟。然而,因为Java泛型系统使用类型擦除,没有足够的信息来autobox在这种情况下。

要扩大TofuBeer的答案。

int是一个原始

整数是一个对象。

泛型不支持的原语。

@XmlJavaTypeAdapter(value=MyAdapter.class, type=int.class)

那特技指定型,使其与基元的工作

在适配器

在包信息使用相同的将意味着你的那个包做全球

试验后发现这一点。

public class MyAdapter extends XmlAdapter<String, Integer> {

由于在Java中的原语是忠实地原语。在Java int会按值传递,而Integer将通过一个参考。在.NET int或的Int32等只是不同的名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top