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