我有类似如下的静态变量测试oObject创造者
TestObjectCreator{
private static Person person;
private static Company company;
static {
person = new Person()
person.setName("Joe");
company = new Company();
company.setName("Apple");
}
public Person createTestPerson(){
return person;
}
public Person createTestCompany(){
return company;
}
}
通过应用静态{}我是什么获得?我认为这些对象是单身人士。但是,如果我做了以下操作:
Person person = TestObjectCreator.createTestPerson();
person.setName("Jill");
Person person2 = TestObjectCreator.createTestPerson();
将person2命名为Jill或Joe?
我相信“Person person = TestObjectCreator.createTestPerson();”会导致编译器错误,因为该方法未声明为静态,并且您没有TestObjectCreator的实例。 – DJClayworth 2010-05-17 20:49:56
不正确。静态块在静态方法之前执行 – 2010-05-17 23:54:43
不,编译器错误。 createTestPerson()是一个实例方法。 – DJClayworth 2010-05-18 13:32:42