2015-04-06 42 views
0

的方法我有一个方法如下所述:需要创建一个自定义类型

protected Super<?> generateSuper(Serializable object) throws IOException { 
     Object data = getData(object); 
     Super<Object> sup = new SuperImpl<Object>(data); 
     return sup; 
} 

在此行中,我想通过自定义类型。我怎样才能做到这一点?例如:我想创建任何其他类类型的Super。 我可以将任何参数传递给可以在方法中的byte []位置传递的方法吗?

类SuperImpl样子:

public class SuperImpl<T> implements Super<T>{ 
    public SuperImpl(T data) { 
    } 
} 

回答

1

你必须创建一个通用的方法:

protected <T> Super<T> generateSup(Serializable object) throws IOException { 
    T data = getData(object); //questionable 
    Super<T> sup = new SuperImpl<T>(data); 
    return sup; 
} 

您可以调用它像:

<byte[]>generateSup(object); 
//or 
<String>generateSup(anotherObject); 
//or 
<OtherClassType>generateSup(someOtherObject); 

还有一个尽管如此,你必须确定。

您必须确定getData(object)返回T。如果你这样做,这个方法将被编译。否则,如果getData(object)总是返回Object,则必须在SuperImpl类中提供一个构造函数,该类使用Object

+0

然后你必须绑定类型参数。检查我的更新 – 2015-04-06 08:55:20

+0

明白了。我更新了答案。 – 2015-04-06 09:13:54

相关问题