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

Entrée/Sortie Java Discussion :

Comment paramétrer une fonction main(paramètres)


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut Comment paramétrer une fonction main(paramètres)
    Bonjour ;

    je suis entrain de développer la fonction main() de mon programme java (ECLIPSE) et je suis encore novice.
    je dois faire appel à cette fonction dans un autre programme; le problème est que je dois faire passer en paramètres des valeurs de champs que je ne sais pas leurs nombre et leurs types au préalable, c'est à dire la fonction

    main(paramètre1 de type quelconque,paramètre2 de type quelconque,paramètre n de type quelconque)

    va recevoir un nombre inconnu de paramètres d'un type donnée au moment de l'appel de la fonction.(dans mon cas elle va faire un traitement sur des colonnes d'une base ou bien un fichier)

    comment faire?? est ce qu'il y a un type générique!!!
    cordialement
    Hana

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Par défaut
    Bonjour,

    Citation Envoyé par rechercheh Voir le message
    comment faire??
    Une façon de faire serait d'utiliser l'ellipse (si tu travailles avec java 1.5 ou plus). La F.A.Q. pourrait t'être utile dans ce cas.

    Citation Envoyé par rechercheh Voir le message
    est ce qu'il y a un type générique!!!
    Oui, le type Object. Tous les objets java héritent de cette classe.

    Mako.

  3. #3
    Membre actif
    Homme Profil pro
    Etudiant
    Inscrit en
    Février 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 115
    Par défaut
    peut être envoyer un tableau d'Object ? Mais tu va pas t'amuser pour traiter tes Object[] qui vont arriver si c'est plusieurs type différent...

  4. #4
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Salut,

    la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void main(String[] args)
    accepte un tableau de taille variable de String. Il est donc possible de passer autant de valeurs que voulu. En ce qui concerne leur type, cela depend de comment elles seront utilisées. Mais il suffit d'avoir une convention quelconque pour pouvoir passer n'importe quoi en parametre. Par exemple, utiliser 2 parametre pour chaque donnée à envoyer. On peut imaginer un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar monAppli.jar int 5 float 2.5 string monString
    pour envoyer 1 entier, 1 float et 1 string. Pareil pour des objets plus complexes.

  5. #5
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    Bonjour

    merci pour votre réponses . je vais essayer les propositions...

    Citation Envoyé par hwoarang Voir le message

    la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void main(String[] args)
    par contre main() doit etre une fonction qui fait un return !!! donc pas de void!!! non!!!
    donc je me demande est ce que c'est possible d'ecrire :

    public static object main(object [] args )??

    merci
    Hana

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par rechercheh Voir le message
    par contre main() doit etre une fonction qui fait un return !!! donc pas de void!!! non!!!
    donc je me demande est ce que c'est possible d'ecrire :

    public static object main(object [] args )??

    merci
    Hana
    Et peut-on savoir pourquoi tu souhaites un retour du main ? Ca n'a pas vraiment de sens donc non tu ne peux faire "public static objet main".
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  7. #7
    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
    Citation Envoyé par rechercheh Voir le message
    donc je me demande est ce que c'est possible d'ecrire :

    public static object main(object [] args )??
    C'est tout à fait possible, mais dans ce cas la méthode main() ne pourra pas servir de point d'entrée pour un programme.

    Puisque tu veux justement l'appeler à partir d'une autre partie du programme, c'est qu'il est déjà démarré à ce moment-là, et donc ce n'est pas un problème. Mais bon, ce serait malin de lui donner un autre nom, pour pas confondre le main() habituel.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est tout à fait possible, mais dans ce cas la méthode main() ne pourra pas servir de point d'entrée pour un programme.

    Puisque tu veux justement l'appeler à partir d'une autre partie du programme, c'est qu'il est déjà démarré à ce moment-là, et donc ce n'est pas un problème. Mais bon, ce serait malin de lui donner un autre nom, pour pas confondre le main() habituel.
    Oui donc ce n'est plus vraiment un lanceur.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  9. #9
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    Salut

    pour vous mettre dans le contexte:

    j'ai développé une classe java avec main () dans laquelle j'ai fait un traitement .

    j'utilise en parallèle un outil ETL et dans lequel j'ai développé une routine qui doit faire appel à une fonction() en lui passant des parametres (colonnes de fichiers ou base) de types différents.

    je n'ai pas d'autre possibilité d'ajouter une autre fonction qui fait le traitement demandé a part le main() puisque mon programme fonctionne convenablement.

    merci
    Hana

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah, le paramètre args de ton main sert à ça.

    cf http://docs.oracle.com/javase/tutori...dLineArgs.html

  11. #11
    Membre confirmé
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    Bonjour ;

    j'ai modifier la fonction main(), elle reçoit un seul argument maintenant.
    mais le problème persiste encore.
    je dois lui faire passer une valeur de colonne d'un tableau dont le type change d'une colonne a une autre.

    colonne1---colonne2
    22 | aaaa
    675 | ddd
    34 erer

    le premier appel de la fonction main dans mon programme doit recevoir le type int. sinon dans le deuxième cas integer.

    j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static byte[] main(String[] args)
    { String [] text  = args ;
    routine rout = new routine();
     byte[] text2 = rsa.modifier(text);   
     
      		return text2 ;
    	}
    egalement avec le type générique Object. mais ca n'a pas marché!!

    s'il vous plait un aide

    Hana

  12. #12
    Membre expérimenté
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Billets dans le blog
    1
    Par défaut passage par fichier
    Bonjour,

    pour traiter des grandes quantités de données de types variés, tu peux passer par des fichiers "monEntree.txt" et "maSortie.txt". Il te faudra définir une convention d'écriture et de lecture couvrant tes différents besoins mais quand tu auras fait cela, tu pourras traiter n'importe quel type de données.

    Cela ressemble à la solution proposée par hwoarang.

    Tu aurais en entrée de ton main() un tableau args[] de longueur 1 et contenant le nom du fichier à traiter.
    Ensuite tu peux adopter une convention simple de lecture/écriture comme ceci :
    int 10
    float 2.5

    etc...

    Quand tu as traité tes données, tu produis une sortie lisible dans un fichier texte, ce qui correspond à une forme de retour de main() exploitable.

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

Discussions similaires

  1. passage d'une chaine de paramètres à une fonction
    Par unmulot dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/10/2010, 18h20
  2. Réponses: 16
    Dernier message: 26/05/2009, 13h32
  3. Réponses: 4
    Dernier message: 28/03/2008, 21h43
  4. Réponses: 4
    Dernier message: 03/07/2007, 14h03

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