Включающий экземпляр, содержащийнеобходимо - PullRequest
82 голосов
/ 28 ноября 2010

Требуется включающий экземпляр, содержащий

Ниже приведен код.positionObj - это объект, который я пытаюсь использовать, и он дает мне вышеуказанную ошибку.

Непонятно, почему.

package toolBox;
import toolBox.Secretary.positionObj;    

public class PositionManagement {
    public static HashMap<String, Secretary.positionObj> main(String vArg){
        positionObj newPosition=new positionObj();
    }
}

Ответы [ 3 ]

120 голосов
/ 28 ноября 2010

Вы пытаетесь использовать нестатический внутренний класс positionObj без экземпляра Secretary, чтобы он принадлежал.
Нестатический внутренний класс должен принадлежать экземпляру своего родительского класса

Возможно, вам следует заменить positionObj на обычный класс или статический внутренний класс.

В качестве альтернативы вы можете написать someSecretary.new positionObj(), чтобы создать экземпляр внутреннего класса, принадлежащего someSecretary экземпляр.

7 голосов
/ 20 сентября 2017

Сначала создайте объект класса Outer.В этом случае я считаю «секретарем».Затем создайте позицию Obj.Вот так

Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
0 голосов
/ 28 ноября 2010

Правильная обобщенная подпись будет

public static HashMap<String, positionObj> main(String vArg)

, вам не нужно указывать positionObj, поскольку вы уже импортируете ее.

Однако я вполне уверен, что основной метод должен соответствовать подписиниже.Если вы хотите, чтобы main был основным методом для вашей программы, измените сигнатуру на

 public static void main(String[] args) {...}

, вы можете создать отдельный статический метод, который возвращает Map и вызывает его из main.

Как примечание, все классы должны начинаться с заглавной буквы, positionObj, должен быть PositionObj.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...