Jak mogę przekazać parametr enum przez odniesienie w java? Jakieś rozwiązanie?przekazywanie wyliczeń przez odniesienie w java
Odpowiedz
W Javie nie można przekazać żadnych parametrów przez odniesienie.
Jedynym sposobem obejścia tego problemu jest utworzenie klasy opakowania i zawarcie wyliczenia.
public class EnumReference {
public YourEnumType ref;
}
I wtedy można go używać tak:
public void someMethod(EnumReference reference) {
reference.ref = YourEnumType.Something;
}
Teraz odniesienia będzie zawierać inną wartość dla wyliczenia; zasadniczo naśladując przekazywanie referencji.
Tak naprawdę stworzyłem rodzajowy typ 'IndirectReference
@Jon, dobre połączenie. Zazwyczaj nie wydaje mi się, że mam problem z wartością graniczną. Nigdy nie wchodzę mi w drogę. – jjnguy
@ Jonathan: Można również użyć 'AtomicReference'. – ColinD
Java jest przekazywana według wartości - zawsze.
Użytkownik przekazuje referencje, a nie obiekty. Referencje są przekazywane wartością.
Możesz zmienić stan zmiennej obiektu, do którego odnosi się odniesienie w funkcji, do której został przekazany, ale nie możesz zmienić samego odniesienia.
Nie mogę sobie wyobrazić, dlaczego zostało to odrzucone - w ogóle niepoprawne. Pięć lat. Głupi. – duffymo
- 1. Przekazywanie wektorów przez odniesienie
- 2. Przekazywanie tablicy przez odniesienie
- 3. Przekazywanie tablic przez odniesienie?
- 4. Przekazywanie funkcji (przez odniesienie) zmiennej w zakresie
- 5. Jawne przekazywanie list metodom działającym jak przekazywanie przez odniesienie
- 6. Jak przekazywanie przez odniesienie naprawdę działa w języku C#?
- 7. 2D Dynamiczne przydzielanie macierzy i przekazywanie przez odniesienie w C
- 8. Dlaczego przekazywanie przez odniesienie jest wolniejsze w tym kodzie?
- 9. Java: Najlepszy sposób przekazywania int przez odniesienie
- 10. Przekazywanie argumentów do std :: async przez odniesienie kończy się niepowodzeniem.
- 11. Przekazywanie przez stałe odniesienie na liście przechwytywania lambda
- 12. Python numpy i wydajność pamięci (przekazywanie przez odniesienie vs. wartość)
- 13. Przekazywanie wskaźników między C i Java przez JNI
- 14. Java dla pętli według wartości lub przez odniesienie
- 15. jak przekazać nieograniczoną liczbę argumentów przez odniesienie w php
- 16. Php przekazany przez wartość lub przez odniesienie
- 17. przekazywanie zmiennych przez ssh
- 18. Jak przekazać podciągi przez odniesienie?
- 19. Przesyłanie argumentów tablicowych przez odniesienie
- 20. Recursion i przechodzącej przez odniesienie
- 21. Jak przekazać hash przez odniesienie w perlu
- 22. Prześlij ciąg znaków przez odniesienie w JavaScript
- 23. Przechodząc opcjonalny parametr przez odniesienie w C++
- 24. VB6 przejść przez wartość i przejść przez odniesienie
- 25. Łączenie wyliczeń
- 26. W języku Java są typami wyliczeń wewnątrz klasy statycznej?
- 27. PowerShell przejść przez odniesienie nie działa dla mnie
- 28. Czy rzut w połowie (...) rzucać przez wartość lub przez odniesienie
- 29. Czy przekazywanie ciągu znaków do funkcji kopiuje ją według wartości lub przekazuje przez odniesienie?
- 30. Efektywne przekazywanie parametrów w metodzie w java
Jaki jest przypadek użycia? –
Normalnym powodem "przekazania argumentu przez odniesienie" jest to, że chcesz go zmodyfikować. Możesz to zrobić zazwyczaj w Javie, ponieważ zmienne są w rzeczywistości odwołaniami - jednak modyfikacja wyliczenia jest na ogół bardzo złym pomysłem. – DJClayworth