从Java界面中的相同方法返回不同类型

问题描述:

您好我想定义一个接口,我有一个方法返回实现它的类的对象。我知道我可能不得不使用类似“T”的东西,但我不能正确地使用它。从Java界面中的相同方法返回不同类型

我的想法是有一个接口由一些类实现,它有一个静态方法从Json字符串中创建该对象。我需要这样,因为在某些情况下,我需要进行自定义反序列化。你知道这样做的最好方法吗?

在此先感谢

+0

我认为你正在寻找[泛型](http://docs.oracle.com/javase/tutorial/java/generics/)。 IE:'Something ' - >'Something ','Something ',ect。 – Pokechu22 2014-12-08 00:05:19

你可以做的最接近的事是

interface MyInterface<T> { 
    T deserialize(String json); 
} 

class MyClass implements MyInterface<MyClass> 

,但你不能强制执行的静态方法。

我建议你看一下json库,比如Jackson或者Gson。