有哪些方法可以在 Java 中使用 extend in 设置上限
What methods are possible to set an upper limit in with extend in Java
我只是想检查这不是 possible/if Java 是可能的。我着手制作一个 java 版本的模板(即通用 class),可用于有界字符串系列。
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
其中父 class 使用 U 作为 MAX_LEN 的值,例如
public abstract class NameType
{
private NameType( final Integer u, final String... parameters ){
this.maxLen = u;
}
}//NameType
或者也许更好,使 MAX_LEN 受到抽象保护,因此我不需要 'maxLen' 成员,并且最大值始终可以是静态最终值。我的努力和阅读表明 Java 中的泛型只是类型,所以它不应该工作。我已经放下链接,是时候使用声明来做到这一点了;我仍然想知道是否有更严格的泛型方法来做到这一点!?或者说最终的答案是 "No".
另请参阅:
- Java Generics Value.<SomeValue>
- How are Java generics different from C++ templates? Why can't I use int as a parameter?
这在 Java 中是不可能的。通用参数必须是类型。
Java 泛型只是表面上类似于 C++ 模板。
我只是想检查这不是 possible/if Java 是可能的。我着手制作一个 java 版本的模板(即通用 class),可用于有界字符串系列。
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
其中父 class 使用 U 作为 MAX_LEN 的值,例如
public abstract class NameType
{
private NameType( final Integer u, final String... parameters ){
this.maxLen = u;
}
}//NameType
或者也许更好,使 MAX_LEN 受到抽象保护,因此我不需要 'maxLen' 成员,并且最大值始终可以是静态最终值。我的努力和阅读表明 Java 中的泛型只是类型,所以它不应该工作。我已经放下链接,是时候使用声明来做到这一点了;我仍然想知道是否有更严格的泛型方法来做到这一点!?或者说最终的答案是 "No".
另请参阅:
- Java Generics Value.<SomeValue>
- How are Java generics different from C++ templates? Why can't I use int as a parameter?
这在 Java 中是不可能的。通用参数必须是类型。
Java 泛型只是表面上类似于 C++ 模板。