2012-10-31 26 views
0
HttpEntity<?> requestEntity = new HttpEntity<Object>(json, headers); 

我在這裏有幾個問題?這種類型的Object是什麼意思?

  1. ?這是什麼意思。爲什麼他們把<?>而不是<Object>
  2. 爲什麼HTTPEntity構造採取< Object>作爲它的類型,但是類參考服用< ?>作爲其類型。
+0

'?'是通配符類型,您可以在[通配符](http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html)上閱讀它。 –

+1

HttpEntity 位於左側,右側的HttpEntity 完全相互獨立。鏈接它們的唯一規則是HttpEntity 也是HttpEntity ,這是分配運算符=工作所需的。 – ignis

回答

1

? - 通配符語法

HttpEntity<?> requestEntity = new HttpEntity<Object>(json, headers); 

`HttpEntity<?>` whose element type matches anything.. 

請記住,如果你嘗試添加對象到requestEntity你會得到一個編譯錯誤。

 requestEntity.add(new Object());//compiler error on this line as it expects `?` not an object 

讀關於仿製藥here

1

?意味着外卡它的通用符號。這意味着未知的HttpEntity。