如何将类范围的类型参数限制为原始包装器(数字)和字符串?

时间:2015-01-22 08:45:52

标签: java generics

如何在泛型类中限制为原始包装类型(Integer,Long等)或String?像这样的东西(伪代码):

public class GroupNotificationService<String OR T extends Number>

这可能吗?感谢。

1 个答案:

答案 0 :(得分:5)

你不能用类型参数做到这一点;如果它们允许有多个边界(如T extends A & B等),它们只是加法的。

但是,您可以使用静态工厂方法来生成类:

public static <T> GroupNotificationService<T> forClass(final Class<T> c)
{
    // check that c is correct, then
    return new GroupNotificationService<T>(whatever);
}