Требуется закрытый экземпляр, содержащий <мою ссылку>
Требуется прилагаемый экземпляр, который содержит
Ниже приведен код. positionObj
- это объект, который я пытаюсь использовать, и он дает мне вышеуказанную ошибку.
Непонятно, почему.
package toolBox;
import toolBox.Secretary.positionObj;
public class PositionManagement {
public static HashMap<String, Secretary.positionObj> main(String vArg){
positionObj newPosition=new positionObj();
}
}
Ответы
Ответ 1
Вы пытаетесь использовать нестатический внутренний класс positionObj
без экземпляра Secretary
, к которому он принадлежит.
Нестатический внутренний класс должен принадлежать экземпляру его родительского класса
Вероятно, вы должны изменить positionObj
на обычный класс или статический внутренний класс.
В качестве альтернативы вы можете написать someSecretary.new positionObj()
, чтобы создать экземпляр внутреннего класса, принадлежащего экземпляру someSecretary
.
Ответ 2
Сначала создайте объект класса Outer. В этом случае я думаю "секретарь". Затем создайте positionObj. Как это,
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
Ответ 3
Правильной общей сигнатурой будет
public static HashMap<String, positionObj> main(String vArg)
вам не нужно квалифицировать positionObj, поскольку вы уже импортируете его.
Однако, я уверен, что основной метод должен соответствовать подписи ниже. Если вы хотите, чтобы основной был основным методом для вашей программы, измените подпись на
public static void main(String[] args) {...}
вы можете создать отдельный статический метод, который возвращает Map и вызывается из main.
В качестве примечания, все классы должны начинаться с заглавной буквы, positionObj, должен быть PositionObj.