现在添加到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需要它,这就是我所需要的一切。 –