java - 如何自定义泛型?

标签 java generics interface

我有一个这样的界面:

public interface BeanCreator<T> {   
   public T createBean();
   public Class<T> getClazz();
}

我试着定制它:

public class CustomizedBeanCreator<T> implements BeanCreator<T>{

    @Override
    public T createBean() {
        CustomizedBean bean = new CustomizedBean();
        bean.setId(-2323);
        bean.setName("this bean is created by a customized creator");       
        @SuppressWarnings("unchecked")
        T t = (T)bean;      
        return t;
    }

    @SuppressWarnings("unchecked")
    @Override
    public Class<T> getClazz() {
        return (Class<T>) CustomizedBean.class;
    }
}

因为那两个@SuppressWarnings,我感到不舒服。

我应该怎么做才能修复它?

谢谢!

最佳答案

更改签名(和实现)来自

public class CustomizedBeanCreator<T> implements BeanCreator<T>{

类似于

public static class CustomizedBeanCreator implements BeanCreator<CustomizedBean> {

    @Override
    public CustomizedBean createBean() {
        CustomizedBean bean = new CustomizedBean();
        bean.setId(-2323);
        bean.setName("this bean is created by a customized creator");
        return bean;
    }

    @Override
    public Class<CustomizedBean> getClazz() {
        return CustomizedBean.class;
    }
}

关于java - 如何自定义泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46739734/

相关文章:

java - Java Spring Data 中的 MongoDB $graphlookup

java - 在 Windows 7 SP1 上安装 Hadoop 2.7.1 时出现 CMake 错误

java - 在使用 SpringBoot 开发的 REST API 中映射到 Java 对象时,使 JSON 有效负载字段不区分大小写

java - 在运行时确定泛型的翻译类型

f# - F# 中的泛型和接口(interface)

java - 接口(interface)实现之间的用例

java - 用用户输入填充数组

swift - 包装到没有特定泛型类型的函数中时不调用正确的方法

c# - 使用引用类型与值类型参数化的泛型类型的隐式转换

java - Java 的初始化 - 类 v/s 接口(interface)