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

Java Discussion :

Nom de l'Interface en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Par défaut Nom de l'Interface en Java
    bonjour

    Je veux créer une interface dont le noms est le résultat d'un get qui se trouve dans un autre package ( un autre plugin )

    Est il possible de faire ça ?

    si c'est le cas Merci de me dire comment ?

    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ben pas trop, non. Ou alors, ça s'utiliserait comment, ton bazar ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Tu peux faire de la compilation à la volée. Mais je vois pas trop l'interet puisque ta classe ne pourra pas l'utiliser. Ou alors, il faudrait aussi créer des classes qui l'utilisent à la volée. Est ce que tu peux mieux expliquer ce que tu cherches à faire ? Il y a peut etre plus simple...

  4. #4
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    C'est tout à fait possible.

    Un petit exemple avec une classe ci dessous. Pour une interface il suffit de faire la même chose et idem pour les classes qui implémenteront l'interfaces.

    Prérequis : Il faut que tools.jar (présent dans le JDK soit référencé par le projet)

    Le bout de code ci dessous fonctionne, mais on peut très certainement faire mieux.
    Il créé un fichier .java contenant le code dans le dossier source du projet, le compile, puis copie le fichier class dans le dossier du projet contenant les classes.
    Il utilise ensuite le classLoader pour charger la classe et invoquer une méthode dessus.
    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
     
     
    		//constantes
    		final String NOM_CLASSE = "ClasseTest";
    		final String CHEMIN_SOURCE = "src/";
    		final String CHEMIN_BIN = "bin/";
     
    		//Ecriture du .java
    		String s = "public class " + NOM_CLASSE + "{" + "		public void foo(){"
    				+ "			System.out.println(\"Hello World !\"+this.getClass());"
    				+ "		}" + "}";
    		FileWriter fw = new FileWriter(CHEMIN_SOURCE + NOM_CLASSE + ".java");
    		fw.write(s);
    		fw.flush();
    		fw.close();
     
     
    		//Compilation
    		String[] sources = { CHEMIN_SOURCE + NOM_CLASSE + ".java" };
    		com.sun.tools.javac.Main.compile(sources);
     
     
    		//copie du .class dans un dossier inclu dans le classPath
    		FileChannel in = null;
    		FileChannel out = null;
     
    		try {
    			in = new FileInputStream(CHEMIN_SOURCE + NOM_CLASSE + ".class")
    					.getChannel();
    			out = new FileOutputStream(CHEMIN_BIN + NOM_CLASSE + ".class")
    					.getChannel();
    			in.transferTo(0, in.size(), out);
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (in != null) {
    				try {
    					in.close();
    				} catch (IOException e) {
    				}
    			}
    			if (out != null) {
    				try {
    					out.close();
    				} catch (IOException e) {
    				}
    			}
    		}
     
     
    		//test du chargement de la classe et appel d'une méthode.
    		Class laClasse = Class.forName(NOM_CLASSE);
    		Object instance;
    		try {
    			instance = laClasse.newInstance();
    			Method foo = laClasse.getDeclaredMethod("foo");
    			foo.invoke(instance);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Par défaut
    bonjour

    Merci pour votre réponse, juste une autre chose
    le nom de l'interface ou la classe ' votre exemple', pour moi est un get dans un autre package, Merci de me dire comment la récupérer ?

    et pour les chemin, dois-je les spécifier ou bien quoi ? j'ai pas bien compris


    Merci

  6. #6
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Y a qu'à (j'adore cette expression :p) faire un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final String NOM_CLASSE = maSuperClasseDansUnPackageObscur.maMéthode();
    Pour les 2 autres constantes, ce sont celles qui, chez moi, définissent les dossiers sources et bin. Ce n'est pas propre, mais c'était juste pour l'exemple.

    Ce qu'il faut juste c'est que :
    - Le compilateur puisse trouver le fichier .java
    - Le fichier .class doit être quelque part dans le classPath de l'application pour pouvoir être chargé.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Par défaut
    bonjour

    Désolée mais vu que je suis débutante en java je suis un peux perdue

    voilà j'ai un projet qui contient deux package :
    - package instance_tp;
    - package isntance_am;

    voilà le code du premier ils contient deux classe l'importante pour moi c'est celle la :
    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
    package instance_tp;
     
    import java.util.Iterator;
     
    import tp.Templates;
    import tp.Monde;
     
     
     
    public class LoadTest {
     
     
    	public static void main(String[] args) {
     
    		// Loading the existing model
     
    		EMFModelLoad loader = new EMFModelLoad();
    		Templates templates = loader.load();
     
     
     
    		for (Iterator<Monde> iterator1 = templates.getMondes().iterator(); iterator1.hasNext();)
     
    		{
     
    		     Monde  monde = iterator1.next();
     
    		     	String X = monde.getMondeName();
     
    		     System.out.println(" le nom du monde :" +X);
     
     
     
    		}
     
     
     
    	}
    }

    Et je veux récupérer la variable X pour la mettre à la place du get et du set 'comme variable finale et non modifiable dans la classe ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package t02;
     
    import org.eclipse.emf.ecore.EObject;
     
     
    public interface Monde_Objet extends EObject {
     
     
     
    	String getNameMO();
     
    	void setNameMO(String value);
     
    } // Monde_Objet

Discussions similaires

  1. Interface visual Java
    Par Queb dans le forum Débuter
    Réponses: 4
    Dernier message: 21/11/2007, 21h16
  2. Sicstus / Interface prolog java
    Par superhu dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 15h58
  3. faire des interfaces en Java
    Par 18Marie dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2006, 20h39
  4. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 20h27
  5. Changement de nom dans une interface
    Par memed dans le forum Oracle
    Réponses: 6
    Dernier message: 27/10/2005, 18h20

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