Une instance englobante qui contient est requise
Ci-dessous le code. positionObj
est l'objet que j'essaie d'utiliser et me donne l'erreur ci-dessus.
On ne sait pas pourquoi.
package toolBox;
import toolBox.Secretary.positionObj;
public class PositionManagement {
public static HashMap<String, Secretary.positionObj> main(String vArg){
positionObj newPosition=new positionObj();
}
}
Vous essayez d'utiliser la classe positionObj
intérieure non statique sans une instance de Secretary
à laquelle elle appartient.
Une classe interne non statique doit appartenir à une instance de sa classe parente
Vous devriez probablement changer positionObj
en une classe normale ou une classe interne statique.
Vous pouvez également écrire someSecretary.new positionObj()
pour créer une instance de la classe interne appartenant à l'instance someSecretary
.
Commencez par créer un objet de la classe Outer. Dans ce cas, je pense "secrétaire". Ensuite, créez positionObj. Comme ça,
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
La signature générique correcte serait
public static HashMap<String, positionObj> main(String vArg)
vous n'avez pas besoin de qualifier positionObj puisque vous l'importez déjà.
Cependant, je suis à peu près sûr qu'une méthode principale doit être conforme à la signature ci-dessous. Si vous souhaitez que main soit la méthode principale de votre programme, remplacez la signature par
public static void main(String[] args) {...}
vous pouvez créer une méthode statique distincte qui renvoie une carte et l'appelle depuis main.
Notez que toutes les classes doivent commencer par une lettre majuscule, positionObj, devrait être PositionObj.