現在添加到Java 8的默認方法有什麼方法來創建一個默認的構造函數嗎?有沒有辦法給接口添加一個默認的構造函數
我已經試過:
public interface KadContent<T>
{
public default KadContent()
{
}
...
從NetBeans中
獲取錯誤<identifier> expected
爲什麼需要的?我正在使用Gson序列化對象,並得到「無法調用無參數構造函數..」錯誤,我知道我可以使用Gson的InstanceCreator來解決這個問題。但有沒有辦法創建一個默認的構造函數?
更新
我發現我自己的代碼的問題。我用
gson.fromJson(new String(data), InterfaceName.class);
,而不是
gson.fromJson(new String(data), ClassName.class);
因此,即使子類有缺省構造函數,反序列化的代碼是不正確的。但是默認構造函數的問題依然存在。
接口不應該有構造函數。它們不是對象創建的一部分。他們應該保持雙方的合同。 –
默認構造函數甚至意味着什麼?它會創建一個實例? –
Gson需要它,這就是我所需要的一切。 –