Slu
est il possible de distinguer dans une fonction si elle a etait appele a partir d une autre fonction de la classe ou en dehors de la classe ???
thx @+
Slu
est il possible de distinguer dans une fonction si elle a etait appele a partir d une autre fonction de la classe ou en dehors de la classe ???
thx @+
Quel est ton objectif ?
Steve Hostettler
est ton ami(e) et le tag aussi.
cf mon post ...
j aimerais faire une distinction de code entre les deux procedure ... sans etre oblige de mettre un tag
C'est une drole d'idee mais c'est possible en rusant un peu. Utilise ca :
Exemple d'utilisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static boolean externalCall(Class<?> klass) { StackTraceElement[] stack = Thread.currentThread().getStackTrace(); if (stack.length > 4) { return !(stack[4].getClassName().equals(klass.getName())); } return false; }
Tu verras affiche internal puis external. Note que recuperer le stacktrace est tres couteux et affecte les performances. Ensuite c'est une tres mauvaise idee de coder ainsi
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 class A { public static void test() { if (externalCall(test.class)) { System.out.println("external"); } else { System.out.println("internal"); } } public static void main(String... args) { test(); B b = new B(); b.test(); } class B { void test() { A.test(); } } }
ok....je ne voyais pas cela aussi complique ... merci !
Pourquoi ne pas faire deux methodes différentes, une privée et une publique?
Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
"La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"
oui ... 2 methodes qui font pratiquement la meme chose ....Envoyé par viena
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager