Comment puis-je transmettre le paramètre enum par référence dans java? Toute solution?passant enumant par ref en java
Répondre
En Java, vous ne pouvez transmettre aucun paramètre par référence.
La seule solution de contournement que je peux envisager serait de créer une classe wrapper et envelopper une énumération.
public class EnumReference {
public YourEnumType ref;
}
Et alors vous l'utiliser comme ceci:
public void someMethod(EnumReference reference) {
reference.ref = YourEnumType.Something;
}
Maintenant, la référence contiendra une valeur différente pour votre ENUM; essentiellement imitant pass-by-référence.
J'ai créé un type générique 'IndirectReference
@Jon, bon appel. En général, je ne semble pas avoir de problème avec la valeur de transmission. Ne semble jamais me gêner. – jjnguy
@Jonathan: Vous pouvez également utiliser 'AtomicReference'. – ColinD
Java est passé par la valeur - toujours.
Vous transmettez des références, pas des objets. Les références sont transmises par valeur.
Vous pouvez modifier l'état d'un objet modifiable auquel pointe la référence dans une fonction dans laquelle il est transmis, mais vous ne pouvez pas modifier la référence elle-même.
Impossible d'imaginer pourquoi cela a été downvoted - pas du tout incorrect. Cinq ans. Idiot. – duffymo
- 1. Passant Par ref et out
- 2. En passant par référence et en utilisant la référence
- 3. Passer par Ref Textbox.Text
- 4. Paramètre Java passant int [] []
- 5. ce qui est l'équivalent en passant par l'adresse dans C#
- 6. erreur en passant arugument par une fonction
- 7. paramètres de forme en passant par html
- 8. en passant variable php par ajax
- 9. passant un tableau de pointeurs de struct comme ref en C
- 10. ref vs en C#
- 11. Nombre entier passant par référence
- 12. passant par référence dans VB.Net
- 13. Message passant à fil de travail asynchronus en Java J2ME
- 14. en passant une variable par valeur en utilisant php
- 15. Texte passant C -> Java utilisant JNI
- 16. Conversion de ref en TBuf
- 17. ref et en C++/CLI
- 18. Passant NSMutableArray en fonction
- 19. Avant les pointeurs/ref
- 20. Convertir un nombre entier en couleur, en commençant par le rouge et en passant par
- 21. Java: Annotations annotées (et des valeurs passant)
- 22. réseau en passant par l'activité d'appel à partir d'un fil
- 23. Garder POST format d'origine en passant par AWK
- 24. Javascript - en passant par la valeur dans une boucle
- 25. Visual Basic 6.0 En passant par problème de référence
- 26. en passant le paramètre
- 27. référence de l'élément passant par html
- 28. SOAP ne passant pas par tableau multidimensionnel
- 29. Passant pointeur argument par référence sous C?
- 30. PHP SMTP BCC, ne passant pas par
Quel est le cas d'utilisation? –
La raison normale pour "passer un argument par référence" est que vous voulez le modifier. Vous pouvez le faire généralement en Java parce que les variables sont en fait des références - cependant modifier une énumération est généralement une très mauvaise idée. – DJClayworth