1

我只是想检查这是不可能的/如果它可以使用 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 中的泛型是纯类型的,所以它不应该工作。我已经放下了链接,是时候使用声明来做到这一点了;我仍然想知道是否有更严格的泛型方法来做到这一点!?或者最终的答案是“不”。

也可以看看:

4

1 回答 1

4

这在 Java 中是不可能的。泛型参数必须是类型。

Java 泛型只是表面上类似于 C++ 模板。

于 2015-01-08T06:26:51.717 回答