如何在java中绑定泛型类型只接受Integer和double

时间:2013-08-29 05:06:25

标签: java generics

private <T extends Number> T method(T param){...}

这将接受AtomicInteger,AtomicLong,BigDecimal,BigInteger,Byte,Double,Float,Integer,Long,Short。

我想只接受Double,Integer,Float。

2 个答案:

答案 0 :(得分:6)

您不能像这样绑定通用类型,因为IntegerDoubleFloatfinal。因此,它们无法延长。

您可以重载三种方法:

private Integer method(Integer param){...}

private Double method(Double param){...}

private Float method(Float param){...}

答案 1 :(得分:1)

我不相信通过泛型可以做到这一点(因为你想要的那些类型是兄弟姐妹)。

我只是重载方法来接受那些不同的参数。它对每个客户端看起来都是一样的,而且,如果客户端试图用错误的类型调用该方法,编译器会给你一个错误。