Java 运行 导入 class 时的代码
Java run code when class is imported
我知道这里有一个问题可以回答这个问题,因为我之前已经读过它。我这辈子都找不到,在 google.
上也找不到
我记得之前的问题是关于调用各种方法和代码片段的顺序,并且有一个特定的部分显然被称为第二个 class 被导入(也可以是用于做令人讨厌的意想不到的事情)。这叫什么/我该怎么做?
如果我没记错的话,大概是这样的:
Java 文件 1:
...
import somepackage.myclass; //prints "class imported"
...
myclass a = new myclass(); //print "constructor"
...
Java 文件 2
package somepackage;
public class myclass {
...
//Something to print out "class imported"
...
public void myclass(){
System.out.println("constructor");
}
}
问题/答案有几个这样的结构,但我不记得它们叫什么了。有人能给我指出正确的方向吗?
试试这个:
public class Myclass {
static {
System.out.println("test");
}
}
您可能会想到 static initializer:
package somepackage;
public class myclass {
static{
System.out.println("class imported");
}
public void myclass(){
System.out.println("constructor");
}
}
class 的静态初始值设定项在首次访问 class 时获得 运行,无论是创建实例,还是访问静态方法或字段。
我知道这里有一个问题可以回答这个问题,因为我之前已经读过它。我这辈子都找不到,在 google.
上也找不到我记得之前的问题是关于调用各种方法和代码片段的顺序,并且有一个特定的部分显然被称为第二个 class 被导入(也可以是用于做令人讨厌的意想不到的事情)。这叫什么/我该怎么做?
如果我没记错的话,大概是这样的:
Java 文件 1:
...
import somepackage.myclass; //prints "class imported"
...
myclass a = new myclass(); //print "constructor"
...
Java 文件 2
package somepackage;
public class myclass {
...
//Something to print out "class imported"
...
public void myclass(){
System.out.println("constructor");
}
}
问题/答案有几个这样的结构,但我不记得它们叫什么了。有人能给我指出正确的方向吗?
试试这个:
public class Myclass {
static {
System.out.println("test");
}
}
您可能会想到 static initializer:
package somepackage;
public class myclass {
static{
System.out.println("class imported");
}
public void myclass(){
System.out.println("constructor");
}
}
class 的静态初始值设定项在首次访问 class 时获得 运行,无论是创建实例,还是访问静态方法或字段。