Bonjour,
est ce qu il est possible d avoir une method comme parametre d un constructeur? par exemple. public myclass(4, 5, int add(int t){return t+4;})
Bonjour,
est ce qu il est possible d avoir une method comme parametre d un constructeur? par exemple. public myclass(4, 5, int add(int t){return t+4;})
Oui, mais la syntaxe est différente.
Non testé.
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 public class MaClasse { public static void main(String[] args) { try { // int est une primitive, donc on utilise le TYPE de sa classe wrapper Method method = MaClasse.class.getMethod("add", new Class[] {Integer.TYPE}); MaClasse maClasse = new MaClasse(4, 5, method); } catch(NoSuchMethodException exception) { System.err.println("C'est tout planté! " + exception.getClass().getName() + " in MaClasse.main : " + exception.getMessage()); exception.printStackTrace(System.err); } } public MaClasse(int a, int b, Method method) { // Votre traitement } public int add(int t) { return t + 4; } }
C'est donc surement possible, mais quel est l'intérêt ?
C'est pour référencer un callback ou quelque chose comme ça ?
je voudrais savoir cette posibilité est dispo a partir de quel JDK?
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public MaClasse(int a, int b, Method method) throws Exception { Integer retour = (Integer) method.invoke(this, 5); }
Partager