日期:2014-05-20  浏览次数:20792 次

如何把一个函数的返回值赋值给一个常量?
有一个三维数组,在程序里起着参数表的作用,计算起来复杂。但只需要计算一次,然后把结果当做常量,以便以后拿来查询。

问题是,这个三维数组是在是太大,在键盘上一项一项敲进去给常量赋值实在是不现实。

所以问题就来了,有什么办法能把一个函数的返回值定义成常量?

多谢!

------解决方案--------------------
使用循环不可以吗
------解决方案--------------------
定义一个静态变量 ,初始化的时候用函数返回值给他赋值不就行啦,你不动这个静态变量就行啦
------解决方案--------------------
static final int pi=getPI();



public static int getPI() {
//复杂计算
return 3;
}
------解决方案--------------------
那。。。。只有在静态代码块干这个事了
------解决方案--------------------
如果你的函数不是静态的,是对象的方法,你还得new一个对象出来。。
------解决方案--------------------
我觉得你的问题类似于下面的需求,用静态语句块给静态变量计算结果,就只会初始化一次,不用new对象,在构造中初始化;

public class StaticTest {

private static int[][] a = null;

static {

a = new int[10][10];
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
a[i][j] = i * j; 
}
}

}

public static int[][] getA()
{
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
System.out.print(" " + i + "*" + j + " = " + a[i][j] + ";"); 
}
System.out.println();
}
return a;
}

public static void main(String[] args) {
StaticTest.getA();
}
}