Question

I have been searching around the internet about Creating an instance of a object in one class and using that same instance in a different class. I have not found any posts though that apply to what I want to do. Here is an example of what I want to do.


public class ThisClass{
  public ThisClass{
    //This is the object I want to create
  }
}

public class FirstClass{
  public ThisClass thisclass = new ThisClass();
}

public class SecondClass{
  //Now in SecondClass I want to be able to access the instance of ThisClass
  //I created in FirstClass
}

Any ideas on what to do here that wont be too complex and make the code a nightmare to look at?

Was it helpful?

Solution

Three solutions came into my mind :

  1. Make ThisClass singleton - in this way you will never be able to instantiate more than one class of ThisClass type.
  2. Create an instance of ThisClass type and pass it through constructor to all other classes.
  3. Create an abstract class / interface which holds a static instance variable of type ThisClass, and then extend/implement this abstract class / interface in classes you want to have the same ThisClass instance.

OTHER TIPS

Here's one way:

public class ThisClass {
    public ThisClass() {
        // This is the object I want to create
    }
}

public class FirstClass {
    private ThisClass thisClass = new ThisClass();

    public ThisClass getThisClass() {
        return thisClass;
    }

}

public class SecondClass {
    //Now in SecondClass I want to be able to access the instance of ThisClass
    //I created in FirstClass
    private ThisClass thisClass;

    public SecondClass(ThisClass thisClass) {
        this.thisClass = thisClass;
    }
}

public class ThirdClass {
    public ThirdClass() {
        new SecondClass(new FirstClass().getThisClass());
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top