【发布时间】:2014-04-29 15:50:16
【问题描述】:
我有一个程序可以创建整数和双精度的二维数组(有些是整数,有些是双精度)。我编写了一个方法来将这些数组作为映射打印到控制台。但是,我想知道是否可以同时接受 int 和 double 作为参数,而不是有两种方法用于 int 和 double。
这是我的打印功能:
private void printMap(int map[][]){
for (int i=0; i<map.length;i++){
for (int j=0; j<map[i].length;j++){
if(map[i][j]<1000)System.out.print(" ");
if(map[i][j]<100)System.out.print(" ");
if(map[i][j]<10)System.out.print(" ");
System.out.print(imap[i][j]+" ");
}
System.out.println("");
}
}
现在我有 2 倍相同的参数,除了参数,比如:
private void print_intMap(int map[][]){..}
private void print_doubleMap(double map[][]){..}
我希望它像
private void printMap(/*either int or double*/){..}
有什么想法吗? 提前谢谢
【问题讨论】:
-
假设您想坚持使用原语,我认为您无法避免这种情况。
-
你不会在构建 java 类时有单独的私有类型的版本。例如 Arrays.binarySearch 有 char[], int[] double[] 等变种
-
你想要发生什么双倍有多个小数位。例如" 0.0 1.123 "