Bonjour,
désolé pour ce titre en anglais mais je préparela SCJP et mes sources sont en anglais donc je connais pas les termes français
J'ai une question que je vais illustrer par un bout de code :
Comme vous pouvez le constatez, on a une class qui déclare un enum private. Ce type enum est utilisé comme type de retour d'une méthode publique.
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 class MyClass{ private enum Testenum{ one(1),two(2),three(3),four(4); private int theint; Testenum(int s) { theint=s; } } public Testenum getAnEnum() { return Testenum.three; } } public class PrivateNestedTests implements Test { public void run() { System.out.println(new MyClass().getAnEnum()); } }
Du coup je ne vois pas comment dans une autre classe on pourrait utilisé cette méthode étant donné que le type de retour est inaccesible.
Le code ci dessus marche parfaitement mais comment peut-on stocker au mieux le résultat (le stocker dans un Object c'est un peu crado).
Je trouve quand même très étrange que le compilateur autorise comme type de retour d'une méthode un type plus restrictif au niveau des accesseur que la méthode elle même! Qu'en pensez-vous?
Sachant d'ailleurs que la j'utilise un enum, mais le problème est le même pour les inner class.
Partager