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

Langage Java Discussion :

Renvoyer une valeur (String).


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut Renvoyer une valeur (String).
    Bonjour,

    Je suis dsl de faire deux postes mais je ne comprend pas comment retourner une valeur enfin tout particulierement un certain type de valeur. je dois pensser java et j'essai de faire ca comme en C, donc il y a de fortes chances que cela ne marche pas

    si non je ne serais pas la a vous posez des questions qui doivent sembler toutes bete dsl

    Voila donc mon problem, j'ai cree une fonction qui devrais me retourber un char*, enfin String , mais le problem ce pose a la compilation, voila le .java qui me pose problems

    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
     
    import java.awt.*;
    import java.io.*;
    import java.io.FileNotFoundException;
    public class my_reading
    {
        public static String my_reading()
        {
     
    	String fd = "FileConfig";
    	String buffer;
    	int i = 0;
    	int size;
    	int begin;
    	String back;
    	try
    	    {
    		FileReader fr = new FileReader (fd);
    		BufferedReader buff = new BufferedReader (fr);
    		buffer = buff.readLine ();
    		buff.close();
    	    }
    	catch (FileNotFoundException e)
    	    {
    		System.out.println ("ERREUR: FileConfig not found");
    	    }
    	catch (IOException e)
    	    {
    		System.out.println ("ERREUR: C'ant open FileConfig");
    	    }
    	 return (buffer);
        }
    }
    et voila les erreurs de compilations, j'aimerais bien connaitres les raisons

    j'ai fais des recherche sur google j'ai trouver des reponses qui ramenebt touts a la classe SubString ou autre, mais je n'ai pas tout saisie, pas fautes d'avoir chercher

    voila les erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    % javac *.java
     
    Found 1 semantic error and issued 1 warning compiling "my_reading.java":
     
         6.     public static String my_reading()
                              ^---------------^
    *** Semantic Warning: The name of this method "my_reading" matches the name of the containing class. However, the method is not a constructor since its declarator is qualified with a type.
     
     
        34.          return (buffer);
                             ^----^
    *** Semantic Error: The variable "buffer" may be accessed here before having been definitely assigned a value.
    Je ne comprend pas du tout :/

    Je vous remerci par avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    En vrac :
    - la convention usuelle est de mettre la premiere lettre des noms de classe en majuscule.
    - le(s) constructeur(s) de la classe porte(nt) le nom de la classe
    - un constructeur ne retourne pas de valeur.
    - un constructeur ne peut pas etre static.
    - il faut changer le nom de ta methode
    - buffer peut ne pas être initialisé (si il y a une exception sur FileReader par exemple). Le retour de la methode est alors indeterminé. Il faut donc ecrire quelque chose du genre buffer = null avant le bloc try/catch.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    Citation Envoyé par Sanguko
    En vrac :
    - la convention usuelle est de mettre la premiere lettre des noms de classe en majuscule.
    - le(s) constructeur(s) de la classe porte(nt) le nom de la classe
    - un constructeur ne retourne pas de valeur.
    - un constructeur ne peut pas etre static.
    - il faut changer le nom de ta methode
    - buffer peut ne pas être initialisé (si il y a une exception sur FileReader par exemple). Le retour de la methode est alors indeterminé. Il faut donc ecrire quelque chose du genre buffer = null avant le bloc try/catch.
    Je suis dsl mais je ne comprend pas tout :/, le buffer = null a resolut un problem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    % javac *.java
     
    Issued 1 semantic warning compiling "my_reading.java":
     
         6.     public static String my_reading()
                              ^---------------^
    *** Semantic Warning: The name of this method "my_reading" matches the name of the containing class. However, the method is not a constructor since its declarator is qualified with a type.
    j'ai peut etre une idee pour corriger je dis si ca marche

    merci

    ps: convention, je sais bien toutes les autres classe sont bien formater mais c'est une vielle habitude qui me vien du C pas de majuscules enfin une norme imposer mais merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    c'est bon ca marche .
    je n'ai pas cree de constructeur mais j'ai simplement cree une fonction comme en C, enfin grosso modo.

    voila merci

  5. #5
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    La premiere erreur c'est du au fait que tu as une méthode qui porte le meme nom que la classe.

    Or, c'est interdit.
    La seule "méthode" possible portant le meme nom est le(s) contructeur(s).
    Mais un constructeur ne renvoit pas de type.

    ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Class maClasse {
     public maClasse(){
       // code du constructeur;
    }
     
    }

    La deuxième erreur est du à la non initialisation du buffer, ou plus exactement au fait qu'il n'est pas certains qu'elle soit initialisée.

    Celle-ci étant initialisée dans un bloc "try", il n'est pas certains pour le compilateur qu'elle soit à tout les coup initialisée lorsque tu tente de la renvoyer.

    Il y a moyen de passer outre cela, en initialisant la variable à null lors de la déclaration
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

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

Discussions similaires

  1. Renvoyer une valeur d'une page à une autre
    Par mullger dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2006, 11h04
  2. JButton en fonction d'une valeur String
    Par henry.schmitt dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/09/2006, 00h46
  3. récupérer une valeur String, est-ce correct.
    Par LESOLEIL dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 10h56
  4. [C#] Renvoyer une valeur à la fermeture d'une forms
    Par diaboloche dans le forum Windows Forms
    Réponses: 6
    Dernier message: 14/03/2006, 11h54
  5. Réponses: 1
    Dernier message: 22/09/2005, 15h46

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