我正在尝试从此方法返回两个数字。我认为这是正确的。我哪里错了?
public int[] getDimension() {
int shapeWidth = 0;
int shapeHeight = 0;
// .....
int[] result = new int[] {shapeWidth, shapeHeight};
return result;
}
然后在呼叫站点,这是正确的吗?
public int getWidth() {
return getDimension()[0];
}
我在问,因为我相信有一个错误,但我没有看到它。
答案 0 :(得分:4)
没关系。简短但完整的程序,以证明它的工作:
public class Test {
public static void main(String args[]) {
int width = getDimension()[0];
System.out.println(width);
}
public static int[] getDimension() {
int shapeWidth = 5;
int shapeHeight = 10;
int[] result = new int[] {shapeWidth, shapeHeight};
return result;
}
}
顺便说一句,您可以使result
声明行稍微简单:
int[] result = {shapeWidth, shapeHeight};
答案 1 :(得分:3)
我建议使用类
,而不是使用数组class Dimensions {
private int width;
private int height;
public Dimensions(int width, int height) {
this.width = width;
this.height = height;
}
// add either setters and getters
// or better yet, functionality methods instead
}
这将为您提供编译时参照完整性,这比基于“我们知道索引0是宽度而索引1是高度”的推断要好得多。
如果您仍想使用数组,Jon的答案就是现场。
答案 2 :(得分:1)
您的代码看起来很好,但如果您只需要一对,请尽量不要使用数组。
由于Java没有元组/对,你必须实现它们,但它很容易。有关可能的实施,请参阅this question。
public class Test {
public static void main(String args[]) {
int width = getDimension().getLeft();
System.out.println(width);
}
public static Pair<Integer, Integer> getDimension() {
int shapeWidth = 5;
int shapeHeight = 10;
return new Pair<Integer, Integer>(shapeWidth, shapeHeight);
}
}
这比Dimension类更好,因为您可以在代码中的任何位置使用它。