Java:泛型:从泛型方法获取对象类型 T 并访问其方法

阳光明媚
    public interface MyMapperInterface<Y, Z> {

    Y map(Z zObject);

    }

    public class One{
    }

    public class Two{
    }


    public MapperOneTwo  implements MyMapperInterface<One, Two> {

        public One map(Two twoObject){
            //Based on properties of Two, a new One Object is created and returned.
        }

    }


public MapperThreeFour  implements MyMapperInterface<Three, Four> {

        public One map(Two twoObject){
            //Now for two other class, Three and Four, there is a new 
              mapper.
              Based on properties of Two, a new One Object is created and 
               returned.
        }

    }





    FactoryClass

    public class Factory {

        public <T> T getClassInstance(String params){
          if (params.equals("a")) { 
    return (T) new MapperOneTwo();
    } else if (params.equals("b")){
    return (T) new MapperThreeFour();
    }
    }

    }

用法我有一个处理程序类,它需要映射并传递其他类型。所以我希望将类型传递给工厂,然后工厂提供相应的映射器,然后该映射器完成其工作并返回相应类型的对象。但问题是现在返回的对象是 Object 类型,并且这个处理程序类必须在进一步传递它之前对其进行类型转换。

有没有办法避免类型转换并且仍然能够创建这样的工厂?

谢谢

阳光明媚

以下工厂将解决上述问题,而无需进行类型转换:

public class Factory {


    public <Y, Z> Mapper<Y, Z> create(Class<Y> yClassType) {

        Mapper mapper;
        if (yClassType.equals(One.class)) {
            mapper = new MapperOneTwo();
        } else {
            //Handle default behaviour
        }
        return mapper;
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

泛型方法 T 扩展

来自分类Dev

如何从泛型方法<T>() 返回泛型 List<T>

来自分类Dev

如何从具有基本类型约束的泛型方法获取typeof(T)?

来自分类Dev

如何触发递归更改T类型的泛型类方法?

来自分类Dev

IComparer <T>和泛型类型方法问题

来自分类Dev

IComparer <T>和泛型类型方法问题

来自分类Dev

Java泛型-从泛型类型的方法调用特定方法

来自分类Dev

返回泛型类型的泛型方法

来自分类Dev

Java泛型,将T方法称为T而不是其超类

来自分类Dev

方法对象与泛型的返回类型?

来自分类Dev

Java泛型<?超级T>:不适用的方法

来自分类Dev

从StackFrame获取泛型方法的真实类型

来自分类Dev

使用泛型Func <T>的异步方法

来自分类Dev

Java泛型方法

来自分类Dev

通过泛型T获取实体对象的列表,泛型T是EntityObject的类型

来自分类Dev

Java泛型-类型擦除后的方法

来自分类Dev

接口方法Java中的泛型类型

来自分类Dev

泛型类型的扩展方法

来自分类Dev

泛型类型与扩展方法

来自分类Dev

与泛型类型方法的接口

来自分类Dev

泛型的调用对象方法

来自分类Dev

如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

来自分类Dev

如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

来自分类Dev

在 Kotlin 中获取 T 的泛型类型

来自分类Dev

如何在泛型方法中获取泛型类型的类实例

来自分类Dev

在不获取泛型类型实例的泛型方法中读取具体的类属性

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

一个泛型类使用expression <T,bool>方法创建泛型扩展

Related 相关文章

热门标签

归档