[英]How to make wildcard without double and float
我想使泛型,只能包含不带小数部分的数字( Integer
, Long
, Char
, Byte
, Short
)。 可能吗? 我知道class Number
是abstract
,因此每个人都可以编写自己对每种数字的实现。 但是现在我只谈论Oracle实现。
不,在编译时无法实现此行为。
您可以在Java中指定多个类型限制-例如T extends Integer & Long
-但这就意味着T
必须扩展两个 Integer
和Long
。
其他语言(例如Ceylon )也知道类型联合的概念,例如Integer|Long|Char
,而Java则不知道。
可能的解决方法是将Number
用作类型绑定,并在运行时手动检查类型,或者为允许的类型复制公共接口(例如,编写someMethod(Integer)
和someMethod(Short)
来调用接受方法的私有方法)。 Number
)。 无论如何,请三思而后行是否真的需要此限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.