我只是想检查这是否可能/Java 是否可能。我着手制作可用于有界字符串系列的 Java 版模板(即通用类)。
public abstract class BoundedNameType<U extends Integer> extends NameType
{
private static final MAX_LEN = U;
private BoundedNameTypes( final String... parameters ){
super( MAX_LEN, parameters );
}
}//BoundedNameType
父类使用 U 作为 MAX_LEN 的值,例如
public abstract class NameType
{
private NameType( final Integer u, final String... parameters ){
this.maxLen = u;
}
}//NameType
或者也许做得更好,使 MAX_LEN 受到抽象保护,因此我不需要“maxLen”成员,并且最大值始终可以是静态最终值。我的努力和阅读表明 Java 中的泛型只是类型,所以它不应该工作。我已经放下链接,是时候使用声明来做到这一点了;我仍然想知道是否有更严格的泛型方法来做到这一点!?或者说最终的答案是“否”。
另见:
最佳答案
这在 Java 中是不可能的。泛型参数必须是类型。
Java 泛型仅在表面上类似于 C++ 模板。
关于java - Java中with extend有哪些方法可以设置上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27834078/