我想在一个方法中分别使用double值和int值作为方法的参数,我该如何实现?该方法在同一方法中乘以两个整数和两个双数。输出应该是两行,一行是整数,另一行是双值
答案 0 :(得分:2)
最有效的方法是重载方法:
void foo(int i)
void foo(double i)
但将int
分配给double
也是有效的,因此您也可以只提供:
void foo(double i)
同时接受int
和double
。
重载的替代方法是使用接受泛型类型的方法定义泛型类:
public class Bar<T extends Number>{
public void foo(T t){
...
}
}
你可以这样实例化它们:
Bar<Integer> barInt = new Bar<>();
barInt .foo(3);
Bar<Double> barDouble = new Bar<>();
barDouble.foo(3);
请注意,数字包装器会占用更多内存作为原始计数器部件 因此,重载的第一种方法确实是最有效的。
你还有很多其他办法来处理这个问题。 所有这些都表明你应该按照你的要求使用某种方式。
答案 1 :(得分:0)
对于某些int / double类型安全的计算,你可以使用它:
has_many :linked_team_1_constraints, class_name: 'LinkedTeamConstraints', foreign_key: :season_team_id_1, dependent: :destroy
has_many :linked_team_2_constraints, class_name: 'LinkedTeamConstraints', foreign_key: :season_team_id_2, dependent: :destroy
如果您想使用特殊类型的函数(舍入/浮动行为/ ...),您可以使用<T> T calc(T a, Tb) { };
并使用instance of
或INT
或调用帮助方法。 ..或者只是在DOUBLE
中进行。