繁体   English   中英

如何在不使用double和float的情况下制作通配符

[英]How to make wildcard without double and float

我想使泛型,只能包含不带小数部分的数字( IntegerLongCharByteShort )。 可能吗? 我知道class Numberabstract ,因此每个人都可以编写自己对每种数字的实现。 但是现在我只谈论Oracle实现。

不,在编译时无法实现此行为。

您可以在Java中指定多个类型限制-例如T extends Integer & Long -但这就意味着T必须扩展两个 IntegerLong

其他语言(例如Ceylon )也知道类型联合的概念,例如Integer|Long|Char ,而Java则不知道。

可能的解决方法是将Number用作类型绑定,并在运行时手动检查类型,或者为允许的类型复制公共接口(例如,编写someMethod(Integer)someMethod(Short)来调用接受方法的私有方法)。 Number )。 无论如何,请三思而后行是否真的需要此限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM