Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 java 方法,它可以与 Integer 或 Long 的参数一起正常工作。
有没有办法使用泛型来拥有一个接受任一类型参数的方法?
就像是:
public <? extends Number> calculateOutput (<? extends Number> inputNumber) { return inputNumber + 1; }
您可以通过声明 a Tto extend 来非常接近Number。
T
Number
public <T extends Number> T calculateOutput (T inputNumber) {
但这将允许任何Number,甚至Float或BigInteger。
Float
BigInteger
此外,您将无法使用+,因为自动拆箱在此处无法使用通用参数。您必须单独测试这些案例(Long, Integer),但这会破坏首先使用此方法的通用性。
+
Long
Integer