我熟悉C#,现在学习Java中的静态类。 在下面的代码中,我假设如果staticClass构造函数已在启动时初始化。但事实并非如此。在主要方法中调试光标到第一个循环的断点时。我收到一个错误“staticClass not loaded”。静态类未加载
问题:有没有一种方法可以在main方法执行之前执行静态类构造函数?或为什么它没有加载?类似的静态类在启动时加载到C#中。但在Java?认为这是一个不工作的代码。作为一名java专家,你如何重写这段代码?因为它应该纠正。
public class Main {
public static class staticClass
{
public static int myArray[];
public staticClass()
{
myArray=new int[10];
}
public static int NextUnique()
{
int r=(int)(Math.random()*10);
return r;
}
}
//=new int[10];
public static void main(String[] args) throws ClassNotFoundException {
for (int i=0;i<staticClass.myArray.length;i++)
staticClass.myArray[i]= staticClass.NextUnique();
for(int i=0;i<staticClass.myArray.length;i++) {
String msg= MessageFormat.format("{0}. value= {1}",i,staticClass.myArray[i]);
System.out.println(msg);
}
}
}
嵌套类就像一个tp级别的类,只是它嵌套在另一个类中,并且可以访问其包含的类私有成员。它的行为与其他任何一类相同。因此,如果你从不在任何地方调用它,构造函数将不会被神奇地调用。 –
我不喜欢将类嵌入到另一个类中,但我认为这是java中的唯一方法。静态类可以单独/不受限制吗? –
当然,除了那种情况,你不需要static关键字。它只是成为一个顶级课程,就像你的主课程一样。我不确定你的意思是“这是唯一的方式”。唯一的办法是做什么? –