在Java里面,这个很简单。Sample code:public class Sample { public static int i = 0; public static ArrayList list = new ArrayList(); public static main(String[] args) { .... } }看明白了吗?
是的,可以在static函数中初始化,但是就要显式调用此static函数。 我希望是自动的,一用到这个static成员的时候自动初始化 而像static i = 10这样初始化我又难以做到,因为要访问数据库的,不可能压缩为 一句表达式这么简单
我希望这样: public class Sample { public static int i;
public static f() { i = …… //访问DB } } 我希望可以一用到Sample.i(或只是首次用到)的时候自动调用f(),不用显式调用
to ajiao() : 其时你直接这样写 static int i=10 不就可以了吗 或者 java允许你将多个static初始化动作组织起来,就像这样 int i; int j; static{ i=10; j=10;}———————————— 我可以把一些很复杂的比如连接并访问数据库初始化i,j的代码放进这个static里面吗?
写一个 static { } 他里边的代码将在类被装载时调用
class A{ static int i; static{ f(); } static void f(){ i=0; } }
在构造方法之前!对static成员,要么直接赋值(包括默认值),要么在static块中初始化.
{
public static int i = 0;
public static ArrayList list = new ArrayList(); public static main(String[] args)
{
....
}
}看明白了吗?
我希望是自动的,一用到这个static成员的时候自动初始化
而像static i = 10这样初始化我又难以做到,因为要访问数据库的,不可能压缩为
一句表达式这么简单
public class Sample
{
public static int i;
public static f()
{
i = …… //访问DB
}
}
我希望可以一用到Sample.i(或只是首次用到)的时候自动调用f(),不用显式调用
其时你直接这样写 static int i=10 不就可以了吗
或者 java允许你将多个static初始化动作组织起来,就像这样
int i;
int j;
static{
i=10;
j=10;}————————————
我可以把一些很复杂的比如连接并访问数据库初始化i,j的代码放进这个static里面吗?
static
{
}
他里边的代码将在类被装载时调用
static int i;
static{
f();
}
static void f(){
i=0;
}
}
static {}