我可以使用java泛型在java中对同一接口进行不同的实现吗?
假设我想使用泛型将一个类转换成另一个类。我可以这样做吗 例如我可以使用java泛型在java中对同一接口进行不同的实现吗?,java,generics,Java,Generics,假设我想使用泛型将一个类转换成另一个类。我可以这样做吗 例如 Class BConvertImpl implements Converter { A toA(Class B); void update(Class A, Class B); } Class CConverterImpl implements Converter { A toA(Class C); void update(Class A, Class C); } 我可以使用泛型来实现这一点吗 我对Java中的泛型
Class BConvertImpl implements Converter
{
A toA(Class B);
void update(Class A, Class B);
}
Class CConverterImpl implements Converter
{
A toA(Class C);
void update(Class A, Class C);
}
我可以使用泛型来实现这一点吗
我对Java中的泛型非常陌生。谁能帮我做这个吗
谢谢不,你不能。您不能像这样或以任何其他方式在Java中转换类。你可以做的是创建一个处理程序,它将接受任何类型的
转换器
,我怀疑这是你想要实现的。是:你需要键入你的转换器
类(并简单地将方法命名为to
):
/**
*@param“from”类型
*@param是“to”类型
*/
接口转换器{
T至(F自);
无效更新(T到,F从);
}
类BConvertImpl实现转换器{
A到(B from){/*一些impl*/}
无效更新(A到,B从){/*some impl*/}
}
类CConverterImpl实现转换器{
A到(C from){/*一些impl*/}
无效更新(A到,C从){/*some impl*/}
}
您可以执行以下操作:
interface Converter<From, To> {
public To convert(From object);
}
class BConverter implements Converter<B, A> {
public A convert(B b) {
...
}
}
class CConverter implements Converter<C, A> {
public A convert(C c) {
...
}
}
接口转换器{
公共转换(从对象);
}
类BConverter实现转换器{
公共A转换(B){
...
}
}
类CConverter实现转换器{
公共A转换(C){
...
}
}
这可以让你以一种通用的方式定义
转换器
接口,然后你可以得到你需要的任何实现。我想你在第二个类“Comverter”中输入了一个你想要的“Converter”。我不会仅仅改变它,因为它可能是有意的,并且与你的问题相关。对此我很抱歉。这确实是一个打字错误。这不会像写的那样起作用F
和T
是类型参数,而不是参数名,因此to(Class F)
不会编译。你是说到(F)
@CameronSkinner-Yikes!谢谢-现在修复了(我只是在这里写代码,没有使用IDE检查它-doh!)-1我将不得不否决这一条。这是无法回避的。。。这个答案根本不正确。
interface Converter<From, To> {
public To convert(From object);
}
class BConverter implements Converter<B, A> {
public A convert(B b) {
...
}
}
class CConverter implements Converter<C, A> {
public A convert(C c) {
...
}
}