IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Initialiser IState avec ou sans un new


Sujet :

avec Java

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Initialiser IState avec ou sans un new
    bonjour,
    J'ai une difficulté sur l'initialisation d'une variable
    J'ai une exception quand j'accède a l'instruction suivante:
    j'ai donc fait précéder INVOKE par un new:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INVOKE = (IState) new IState();
    mais IState() est refusé par le compilateur: Cannot instantiate the type IState
    celui qui m'orientera sera

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'ai déjà évoqué le problème ici, sous forme de questions à laquelle tu ne daignes pas répondre :

    Citation Envoyé par joel.drigo Voir le message
    Ensuite, habituellement, par convention, une classe qui s'appelle Ixxx est une interface. N'est-ce pas le cas, ou est-ce une classe ? Si ce n'est pas une classe, tu ne pourras évidemment pas l'instancier en faisant new IState()...
    Mais tu poses la question dans une nouvelle discussion sans fournir le minimum d'information qu'on t'a demandée dans l'autre :

    EST-CE UNE INTERFACE OU UNE CLASSE ?

    Soit c'est une classe avec un constructeur privé, et il faudra chercher le moyen d'avoir un instance si c'est possible (Fabrique, Pool, que sais-je, vu qu'on a même pas la documentation de cette classe (demandée aussi dans l'autre discussion)).

    Soit c'est une interface, et il faut soit l'implémenter, soit trouver une implémentation concrète déjà existante, ou au moins une abstraction qu'on pourra étendre (informations aussi disponibles dans la JavaDoc, ou via ton IDE (quelque chose "Type hierarchy")

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut c'est une Class
    IState est une classe

  4. #4
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Poste le code source de ta classe ici histoire de pouvoir déterminer le cas d'erreur


    Cas possibles
    - pas de constructeur public (mais ça ne serait pas cette erreur)
    - pas de constructeur sans argument (mais ça ne serait pas cette erreur)
    - c'est une classe abstraite (c'est fort probable)
    - ce n'est pas une classe (c'est encore plus probable)

  5. #5
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Je met la methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    	public static void buildModel(int doc, String fileName)	throws SQLException, DocExceptions
    	{
    		bFirst = true;
    		int l;
    		int iIdDoc = (int) doc;
    		int min;
    		int max;
    		int iNum;
    		int iNBParagraphe = 0;
    		int iLength = 0;
    		String LogFile = null;
    		String[] tabName;
    		boolean bIsValid = false;
    		String wsText = "";
    		Object[] ListSubChain = null;
    		ArrayList<String> listUniversChaine = null;
    		String NameOfCurrentSubChain;
    		ArrayList<ArrayList> pListOfList;
    		java.util.ArrayList<ElementSemantic> listElementSemantic = null;
    		listePredicat = new java.util.ArrayList<ElementSemantic>();
    		listePrecondition = new java.util.ArrayList<ElementSemantic>();
    		listeUnivers = new java.util.ArrayList<ElementSemantic>();
    		listeQualificatif = new java.util.ArrayList<ElementSemantic>();
    		ListOldSujet = new java.util.ArrayList<String>();
    		ListOldVerb = new java.util.ArrayList<String>();
    		ListOldComplement = new java.util.ArrayList<String>();
    		ListOldComment = new java.util.ArrayList<String>();
    		ListOldObjet = new java.util.ArrayList<Objet>();
    		ListOldValeur = new java.util.ArrayList<String>();
    		ListOldParagraph = new java.util.ArrayList<String>();
    		ListOldy = new java.util.ArrayList<Integer>();
    		ListElem = new java.util.ArrayList<Element>();
    		int j = 0;
    		int i = 0;
    		{
    			INVOKE = (IState) new IState();
    			INVOKE.setName("un");
    			tabName = new String[10];
    			tabName = fileName.split("\\\\");
    			i = 0;
    			int len = tabName[i].length();
    			while (len < 10) {
    				i++;
    				len = tabName[i].length();
    			}
    			fileName = tabName[i];
     
    			returnStatus = true;
    			missionDatabaseManager = new MissionDatabaseManager();
    			if (InterbaseManager.connection == null)
    				MissionDatabaseManager.OpenDatabaseCoherence();
    			if (returnStatus == true)
    			{
    				// 1° creer un model vide.
    				// 2° ouvrir la base de donnée et lire les éléments.
    				returnStatus = true;
    				ArrayList<PropositionNormalized> listOfPredicatNormalized;
    				ArrayList<PropositionNormalized> listOfPreconditionNormalized;
    				ArrayList<QualificateurNormalized> listOfQualificateurNormalized;
    				pListOfList = MissionDatabaseManager.ReadSemanticElements( InterbaseManager.connection, iIdDoc);
    				String OldUnivers = "";
    				if( returnStatus == true)
    				{
    					listePredicat = pListOfList.get(0);
    					listePrecondition = pListOfList.get(1);
    					listeQualificatif = pListOfList.get(2);
    					// 3° en extraire les U1.
    					iNbPredicat = listePredicat.size();
    					iNbQualificateurs = listeQualificatif.size();
    					iNbPrecondition = listePrecondition.size();
    					// on va maintenat extraire les univers
    					// dans chaque liste on les recherche et on ellimine les
    					// doublons
    					QualificateurNormalized qualificateurNormalized;
    					Objet obGlobalVariable;
    					String wsIdentifier;
    					String wsComment;
    					Univers univers;
    					String wsOldUnivers = null;
    					int Typ;
    					i = 0;
    					while (i < iNbQualificateurs)
    					{
    						qualificateurNormalized = (QualificateurNormalized) listeQualificatif.get(i);
    						String wsName = qualificateurNormalized.Identifier;
    						wsComment = qualificateurNormalized.Comment;
    						univers = qualificateurNormalized.Univers;
    						i++;
    						if( !wsName.equals(wsOldUnivers))
    						{
    							boolean b0 = wsName.equals("Filling");
    							if (!b0) {
    								listeUnivers.add(wsName);
    							}
    							wsOldUnivers = wsName;
    						}
    					}
    					// il faut d'abord exprimer les prédicats sous forme Groupe
    					// verbal ( sujet, complement)
    					// attention, là on doit être dans l'itération car on cree
    					// les globales variables pour chacune
     
    					// à ce moment il faut vérifer que les propositions sont
    					// cohérentes
    					// avec les qualificateurs qui ont été enregistrés.
    					// on va aussi passer les qualificateur en objets
    					i = 0;
    					Word word;
    					// il faut à ce niveau déterminer quelle sont les univers
    					// qui sont des sous -sous chaines et lesquels doivent
    					// rester au nineau des sous chaines
    					// cette info est contenue dans les deux premières
    					// préconditions
    					// par prudence et par généricité on va scaner toutes les
    					// préconditions
    					// en recherchent des préconditions courtes qui comportent
    					// des nom de sous chaines et en les discriminant
    					// puis on va écrire dans listUniversChain les éléments qui
    					// sont trouvé et dans la liste des sous chaine et dans
    					// l'introduction
    					// puis on va écrire dans listUniversChain les éléments qui
    					// sont trouvé et dans la liste des sous chaine et pas dans
    					// la liste des sous-sous chaine
    					// on a marqué les préconditions, il faut marquer les
    					// predicats liés
    					// on vérifie à ce niveau que le contenue des listes est
    					// consistent
    					Objet NewObject;
    					listObjectsNormalized = new ArrayList<Objet>();
    					ArrayList<Objet> listeObjectsNormalized = ParseObjects();
    					i = 0;
    					while (i < iSize) {
    						NewObject = (Objet) listeObjectsNormalized.get(i);
    						wsComment = NewObject.Text;
    						wsIdentifier = NewObject.Name;
    						ArrayList<String> Test = NewObject.Enumerated;
    						min = NewObject.min;
    						max = NewObject.max;
    						Typ = NewObject.type;
    						iNum = NewObject.nValue;
    						i++;
    					}
    					idSubMax = 0;
    					// on cree le model abstrait en terme de noeud et d'éléments
    					// 4° initier le model avec un état conf et autant d'etats
    					// operationel qu'il y a d'U1.
    					// 5° creer les sous chaine pour chacun de ces états.
    					// 6° remplir le model pêre.
    					// et on passe aux nouveaux états
    					iNBParagraphe = MissionDatabaseManager.getNbParagraph(iIdDoc);
    					// à ce stade on normalise les préconditions et on les
    					// introduit dans les variables globales
    					IProject project = ProjectsManager.getInstance().getActiveProject();
    					chain = project.getChains().get(0);
    					chain.setName(fileName);
    					IDiagramFactory diagramFactory = IDiagramFactory.eINSTANCE;
    					IDiagram diagram = chain.getDiagram();
    					diagram.getTransitions().clear();
    					listUniversChaine = listeUnivers;
    					listeUniversNormalized = BuildMainModel(diagram, listUniversChaine);
    					// A la fin de traietemnt, on sauvegarde les modifications
    					ResourceUtils.saveResource(ResourceManager.getInstance().getResourceProject(), false);
    					ResourceUtils.saveResource(chain.getDiagramResource(), false);
    					UiUtils.openEditor(ResourceManager.getInstance().getFullPath(chain), true);
    					// 7° remplir les models filles
    					// on prend le dernier identifiant de sous chaine
    					boolean bIsTrue = false;
    					// on relève le nombre de sous chaines
    					idSubMin = 0;
    					String OldNameOfSubChain = "";
    					iNbUnivers = listUniversChaine.size();
    					EList<IChain> ListOfCurrentSubChain = project.getChains();
    					while (idSubMin < iNbUnivers) {
    						// c'est ici qu'il faut ouvrir la subchain pour la
    						// remplir
    						NameOfCurrentSubChain = "";
    						NameOfCurrentSubChain = (String) listUniversChaine
    								.get(idSubMin);
    						if (!OldNameOfSubChain.equals(NameOfCurrentSubChain)) {
    							IMacroState macroState = null;
    							for (IMacroState state : diagram.getStates()) {
    								if (state.getName().equals(
    										NameOfCurrentSubChain)) {
    									macroState = state;
    									break;
    								}
    							}
     
    							listUniversSousChaine = new ArrayList<String>();
    							IChain chain = IProjectFactory.eINSTANCE.createChain();
    							chain.setName(NameOfCurrentSubChain);
    							project.getChains().add(chain);
    							diagram = chain.getDiagram();
    							if (macroState != null)
    							{
    								macroState.setChain(chain);
    							}
    							diagram.getTransitions().clear();
    							BuildCurrentSubChain( diagram, listUniversSousChaine, listePrecondition, listePredicatNormalized, NameOfCurrentSubChain, iIdDoc, idSubMin, iNBParagraphe, iNbPredicat, iNbPrecondition);
    							OldNameOfSubChain = NameOfCurrentSubChain;
    							NextPrecondition = null;
    							RAZReferenceInlist();
    						}
    						idSubMin++;
    					} // End while next chain
    					Objet stateOK;
    					Objet stateNOK;
    					i = 0;
    					iLength = listUniversSousChaine.size();
    					while (i < iLength) {
    						String racine = listUniversSousChaine.get(i);
    						len = racine.length();
    						String OK = racine + "_OK";
    						NameOfCurrentSubChain = "";
    						String NameOfCurrentSubChain1 = OK;
    						j = 0;
    						do {
    							NameOfCurrentSubChain = ListOfCurrentSubChain.get(j).getName();
    							j++;
    						} while (!NameOfCurrentSubChain.equals(NameOfCurrentSubChain1));
    						if (!OldNameOfSubChain.equals(NameOfCurrentSubChain)) {
    							// pour avoir le diagram d'une chaine
    							diagram = ListOfCurrentSubChain.get(0).getDiagram();
    							BuildModelOK(iNBParagraphe, iIdDoc, idSubMin,
    									racine);
    							RAZReferenceInlist();
    						}
    						idSubMin++;
    						String NOK = racine + "_NOK";
    						NameOfCurrentSubChain1 = NOK;
    						j = 0;
    						do {
    							NameOfCurrentSubChain = ListOfCurrentSubChain
    									.get(j).getName();
    							j++;
    						} while (!NameOfCurrentSubChain
    								.equals(NameOfCurrentSubChain1));
    						if (!OldNameOfSubChain.equals(NameOfCurrentSubChain)) {
    							BuildModelNOK(iNBParagraphe, iIdDoc, idSubMin,
    									racine);
    							RAZReferenceInlist();
    						}
    						idSubMin++;
    						i++;
    					}
    				}
    			}
    		}
    	}
    }
    Je corrige: IState est une interface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    /**
     * <copyright> </copyright>
     * 
     * $Id$
     */
    package com.all4tec.matelo.datamodel.diagram;
     
    import org.eclipse.emf.common.util.EList;
     
    /**
     * @author Hussein MHANNA
     */
    /**
     * <!-- begin-user-doc --> A representation of the model object ' <em><b>State</b></em>'. <!-- end-user-doc -->
     * 
     * <p>
     * The following features are supported:
     * <ul>
     * <li>{@link com.all4tec.matelo.datamodel.diagram.IState#getIncomingTransitions <em>Incoming Transitions</em>}</li>
     * <li>{@link com.all4tec.matelo.datamodel.diagram.IState#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
     * </ul>
     * </p>
     * 
     * @see com.all4tec.matelo.datamodel.diagram.IDiagramPackage#getState()
     * @model
     * @generated
     */
    public interface IState
        extends IAbstractNode {
     
        /**
         * Returns the value of the '<em><b>Incoming Transitions</b></em>' reference list. The list contents are of type
         * {@link com.all4tec.matelo.datamodel.diagram.ITransition}. It is bidirectional and its opposite is '
         * {@link com.all4tec.matelo.datamodel.diagram.ITransition#getTargetState <em>Target State</em>}'. <!--
         * begin-user-doc --> <!-- end-user-doc -->
         * 
         * @return the value of the '<em>Incoming Transitions</em>' reference list.
         * @see com.all4tec.matelo.datamodel.diagram.IDiagramPackage#getState_IncomingTransitions()
         * @see com.all4tec.matelo.datamodel.diagram.ITransition#getTargetState
         * @model opposite="targetState"
         * @generated
         */
        EList<ITransition> getIncomingTransitions();
     
        /**
         * Returns the value of the '<em><b>Outgoing Transitions</b></em>' reference list. The list contents are of type
         * {@link com.all4tec.matelo.datamodel.diagram.ITransition}. It is bidirectional and its opposite is '
         * {@link com.all4tec.matelo.datamodel.diagram.ITransition#getSourceState <em>Source State</em>}'. <!--
         * begin-user-doc --> <!-- end-user-doc -->
         * 
         * @return the value of the '<em>Outgoing Transitions</em>' reference list.
         * @see com.all4tec.matelo.datamodel.diagram.IDiagramPackage#getState_OutgoingTransitions()
         * @see com.all4tec.matelo.datamodel.diagram.ITransition#getSourceState
         * @model opposite="sourceState"
         * @generated
         */
        EList<ITransition> getOutgoingTransitions();
     
    } // IState
    et donc comment faire pour que INVOKE ne soit pas null

  6. #6
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Ce qui marche
    J'ai trouvé une solution qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    					INVOKE = AddState(null, null, null, 0, 0);
    					INVOKE.setName("un");
    ou mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    					INVOKE = diagramFactory.createState();
    					INVOKE.setName( "un");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création délégué avec ou sans new
    Par zworg dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/03/2012, 16h59
  2. avec ou sans new
    Par menthol34 dans le forum Langage
    Réponses: 2
    Dernier message: 16/05/2009, 14h34
  3. Réponses: 7
    Dernier message: 29/01/2009, 12h32
  4. L'operateur new, avec ou sans ?
    Par zi_omnislasher dans le forum C++
    Réponses: 11
    Dernier message: 28/09/2007, 10h21
  5. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo