private <T extends Number> T method(T param){...}
这将接受AtomicInteger,AtomicLong,BigDecimal,BigInteger,Byte,Double,Float,Integer,Long,Short。
我想只接受Double,Integer,Float。
答案 0 :(得分:6)
您不能像这样绑定通用类型,因为Integer
,Double
和Float
是final
。因此,它们无法延长。
您可以重载三种方法:
private Integer method(Integer param){...}
private Double method(Double param){...}
private Float method(Float param){...}
答案 1 :(得分:1)
我不相信通过泛型可以做到这一点(因为你想要的那些类型是兄弟姐妹)。
我只是重载方法来接受那些不同的参数。它对每个客户端看起来都是一样的,而且,如果客户端试图用错误的类型调用该方法,编译器会给你一个错误。