How to call `getApplicationContext` in static method in class that extends Application class?

I want to create Database class inside AppContainer class, but I don't know from where get context for Database constructor.

Database

```
public class Database extends SQLiteOpenHelper {

    public Database(Context context) {
        super(context, "database.db", null, 1);
    }
}

```

AppContainer

```
public class AppContainer extends Application{
                                          // Problem---------|
    private static class DatabaseHolder { //                 v
        public static final Database DATABASE = new Database(getApplicationContext()); 
    }

    public static Database getDatabase()
    {
        return DatabaseHolder.DATABASE;
    }
}

```

==================EDIT

I made error in my code. I forgot write word "static" at getDatabase method. Error has been improved. I don't want to create AppContainer in my code. I want use this class as container with static fields and get them without create AppContainer's instance.

I found solution of my problem:

```
public class AppContainer extends Application {

private static AppContainer instance;
private static Database database;

public AppContainer() {
    instance = this;
}

public static AppContainer getInstance() {
    if (instance == null)
        synchronized (AppContainer.class) {
            if (instance == null)
                instance = new AppContainer();
        }
    return instance;
}

public static Database getDatabase() {
    if (database == null)
        synchronized (AppContainer.class) {
            if (database == null)
                database = new Database(getInstance().getApplicationContext());
        }
    return database;
}
}

```