如何在泛型类中限制为原始包装类型(Integer,Long等)或String?像这样的东西(伪代码):
public class GroupNotificationService<String OR T extends Number>
这可能吗?感谢。
答案 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);
}