从本地范围增加对象的范围

时间:2012-12-09 17:03:59

标签: java

我想使用方法创建一个对象,但我希望它(对象+引用)在方法结束后仍然存在。代码示例:

public class start{
public static void main (String [] Args){
  public void createObject(){
    object1 createdObject = new object1();
  }
  createObject();
  createdObject.doSomething();
 }
}

public class object1{
   //code for object 1
}

所以我的主要问题是:如何使用方法创建对象,并在方法结束后让它生效。问题是在方法结束后,引用createdObject会弹出stack因此我不能再使用它了。是否有可能以这种方式创建对象以供进一步使用?

2 个答案:

答案 0 :(得分:2)

public class start{
public static void main (String [] Args){

//class level scope
object1 createdObject = null;

 private void createObject(){
    createdObject = new object1();
  }
}

public class object1{
   //code for object 1
}

注意:我没有遵循命名约定。但请在实际代码中关注它们

更新:正确的代码检查

public class Main {

    public static void main(String[] args) {
         new MyClass().doSomething();
    }

}


class MyClass{
    Object obj ;

    public void doSomething(){
        createObject();
    }


    private void createObject(){
        obj = new Object();
        System.out.println("Created MyClass instance");
    }
}

答案 1 :(得分:0)

您的方法应返回object1而不是void,您必须在方法的末尾添加以下行:

return createdObject;