Bonsoir,
En lisant le cours Java de Bruce Eckel et en faisant les exercices proposés, je fais évidemment l'erreur du débutant qui m'amène à un message d'erreur :
non-static method storage(java.lang.String) cannot be referenced from a static context.
Je cherche à obtenir le nombre d'octets occupés par un String en mémoire, mon code est le suivant :
Alors évidemment, cette erreur de newbee est archi-documentée, mais sur des exemples différents du mien ; et comme ce n'est que ce soir que je me suis mis au Java, j'ai du mal à appliquer les réponses fournies à mon cas.
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 //: Storage2.java import java.util.*; public class Storage { int storage(String s) { return s.length(); } public static void main(String[] args) { System.out.println(storage(args[0])); } }
Je vois que lorsque je mets :
le programme compile et fonctionne convenablement. J'aimerais savoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part static int storage(String s) {
1. Si c'est "propre" de faire ça ;
2. S'il y a d'autres façons de le faire, en déclarant par exemple une instance Storage dans la déclaration même de la classe Storage (j'ai cru voir que c'était possible) ;
3. Si c'est parce que la méthode storage n'agit pas sur une instance Storage, que ça marche quand je déclare static la méthode storage.
Voici mes questions, merci d'avance pour vos réponses !
Endreillie
Partager