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 :

Les miracles des compilateurs et IDE modernes


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 56
    Par défaut Les miracles des compilateurs et IDE modernes
    aujourd'hui par hasard j'ai écrit le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static Date [][] stringToDates(String s){
        	Date ds [][] = new Date[12][2];
        	for(int i = 0 ; i < ds.length; i++)
        	return ds;
        }
    a terme cela donnera plutôt un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private static Date [][] stringToDates(String s){
        	Date ds [][] = new Date[12][2];
        	for(int i = 0 ; i < ds.length; i++){
        	    	//mon traitement
        	}
        	return ds;
        }
    mais ce qui est interressant je trouve c'est l'erreur que mon IDE m'a donné pour le premier code :
    i++ : warning dead code
    logique bien vu bien détecté
    mais moins logique il me donne aussi pour la méthode :
    This method must return a result of type Date[][]
    bon bien sur c'est pas d'une importance capitale mais je ne comprends pas vraiment comment il peut détecter que le code ne sera jamais exécuté et en plus que la méthode peut dans certains cas ne rien renvoyr

    avec un maven clean compile sur le projet ça compile bien
    j'ai pas beaucoup poussé plus loin mais si quelqu'un a une explication ça m'intéresserais de l'avoir

    De la même manière avez vous eu d'autres perles de ce genre ?



    ps config : jdk 1.6.0.18 sur win xp sp3 avec STS 2.5.1 (eclipse 3.6.1)
    ps 2 : si c'est pas le bon endroit n'hésitez pas non plus

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Tout bloc conditionel peut potentiellement ne pas être exécuté, donc tu dois avoir un return après ton "for".

    Ensuite tu fais un return sans condition dans ta boucle, donc tu sors au premier tour, donc "i++" n'est jamais exécuté.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/03/2015, 13h30
  2. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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