質問

私のような辞書を宣言しようとすると:

private Dictionary<String, int> map;

コンパイラは私に次のエラーを与えます:

  トークン「INT」の

構文エラー、

このトークンの後に予想される寸法

しかし、それはIntegerで正常に動作します。私は、Javaが異なっint / Integerを(私はNETの背景から来る)扱うことを漠然と認識してんだけど、私は誰かが私に私が辞書<>

でプリミティブを使用することはできません理由について十分な説明を与えることができる期待していました

他のヒント

.NETで、「プリミティブ」型は、オブジェクトが付いています。 Javaでは、プリミティブ型とオブジェクト間のハードの区別があります。 Java 5のは、特定の状況では両者の間に強制することができますオートボクシングを導入しました。 Javaのジェネリックシステムは型消去を使用しているためしかし、この場合はAutoBoxのに十分な情報がありません。

TofuBeerの答えに展開します。

intは原始的である。

整数オブジェクトです。

ジェネリック医薬品は、プリミティブをサポートしていません。

@XmlJavaTypeAdapter(value=MyAdapter.class, type=int.class)
トリック厥それはプリミティブで動作させるために型を指定する

あなたのアダプタで

あなたはそのパッケージに対してグローバルにそれを行うパッケージ情報で同じを使用すると意味します。

試した後、これを見つけます。

public class MyAdapter extends XmlAdapter<String, Integer> {

Javaでのプリミティブは本当にプリミティブなので。 int基準を通過しながら、JavaではIntegerは、値によって通過します。などの.NET intまたはのInt32では単に別の名前です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top