Требуется заключающий экземпляр, который содержит
требуется вложенный экземпляр, содержащий
ниже код. 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.