2015-10-09 2 views
-1

Итак, у меня есть конкретный класс и абстрактный класс, и я пытаюсь получить доступ к методам из конкретного класса из абстрактного. В магазине в настоящее время содержится много геттеров, которые необходимы классу участников. В настоящее время вы получите исключение из null-указателя.Использование ссылки на объект для получения методов из другого класса

public abstract class members{ 

// Trying to refrence the store object 
Store store; 

public void someMethod(){ 
    // I want to be able to access all the methods from the store class 
    // eg 
    store.showVideoCollection(); 
    } 
} 

public class store { 
// This class has already been instantiated, just one object for it. 

public void showVideoCollection(){ 
    // Stuff here 
} 
public void otherMethod(){ 
    // Stuff here 
    } 
} 

EDIT:

В основном методе

public class start { 
    public start() { 
    store = new Store(); // Don't want to create more than 1 store object. 
} 

Благодаря

+0

Вы никогда не инициализировали магазин? –

ответ

1

Для того, чтобы хранить Store экземпляр, необходимо создать его экземпляр. Как есть, вы объявляете переменную store, но вы ее никогда не инициализируете (так это null). Я думаю, что вы хотели что-то вроде

// Trying to refrence the store object 
Store store = new Store(); // <-- create a Store and assign it to store. 

В качестве альтернативы, вы можете сделать StoreSingleton. Связанная страница Википедии говорит (частично) singleton pattern - это шаблон проектирования, который ограничивает экземпляр класса одним объектом.

public final class Store { 
    public static Store getInstance() { 
     return _instance; 
    } 

    private static final Store _instance = new Store(); 

    private Store() { 
    } 

    public void showVideoCollection(){ 
     // Stuff here 
    } 

    public void otherMethod(){ 
     // Stuff here 
    } 
} 
+0

Знал, что мне не хватало чего-то такого. Спасибо. – XanT

+0

Есть ли способ получить доступ к уже созданному объекту «магазин» вместо создания нового? Проблема в том, что я пытаюсь получить доступ к элементам, которые уже добавлены в класс хранилища. Поэтому, когда я создаю новый объект в «членах», он избавляется от всех предыдущих записей (понятно). Кажется, мне нужен геттер только для одного экземпляра магазина, но не совсем уверен, как его достичь. – XanT

+0

Вы можете сделать 'store' a [Singleton] (https://en.wikipedia.org/wiki/Singleton_pattern). Трудно сказать, что вы просите здесь. –

Смежные вопросы