Created
March 8, 2019 10:23
-
-
Save justinrlle/f292ea7a5148829f967fa6a49879b68c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyShittyClass { | |
public Config modifyRandomlyCurrentConfig() { ... } | |
public MyShittyClass(Config config) { | |
this.config = config; | |
} | |
// ce constructeur ne passe pas, parce que this() n'est pas le premier appel | |
public MyShittyClass(File configFile) { | |
Config config = new ObjectMapper().readToValue(configFile, Config.class); | |
this(config); | |
} | |
// mais celui là, passe, vu que this() est sur la première ligne | |
public MyShittyClass(File configFile) { | |
this(new ObjectMapper().readToValue(configFile, Config.class)); | |
} | |
// this doit être sur la première ligne pour être sur que l'objet est bien | |
// initialisé avant d'appeler des méthodes de l'objets. Genre pour empêcher le code suivant, | |
// qui peut faire de la merde | |
public MyShittyClass(File configFile) { | |
Config config = modifyRandomlyCurrentConfig(); | |
this(config); | |
} | |
// mais dans ce cas là, on a qu'à appeler la fonction dans l'appel à this, nan ? | |
public MyShittyClass(File configFile) { | |
this(modifyRandomlyCurrentConfig()); | |
} | |
// SAUF QUE JAVA SAIT QUE TU FAIS DE LA MERDE ET LE DIT DANS CE CAS LA | |
// ALORS POURQUOI FORCER LE this/super SUR LA PREMIÈRE LIGNE ???? POURQUOI | |
// et honnêtement, il devrait y avoir un seul constructeur, qui init tout les champs, | |
// du moins ceux qui sont obligatoires, et tu as des fonctions statiques qui déterminent | |
// à partir de leurs args les arguments pour le constructeur : | |
public static fromFile(File file) { | |
Config config = new ObjectMapper().readToValue(configFile, Config.class); | |
return MyShittyClass(config); | |
} | |
// monde de merde, je vous dis | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment