Wątek przeniesiony 2015-06-18 13:21 z Java przez bogdans.

Odwołanie do zmiennej, której nazwa będzie przechowywana w zmiennej typu string

0

mam pytanie jak w javie odwoływać się do zmiennej której nazwa będzie przechowywana w zmiennej typu string np.

int zmienna1;
String zmienna2 = "zmienna1";</CODE>


 i tu jaki znak czasami w językach jest to np & przed nazwą zmiennej

a tu ? zmienna2 = 1+ 1;
0

Nie ma takiej możliwości i chyba nie znam języka który by na coś takiego pozwalał (nie liczę akcji typu używanie locals() czy globals() w pythonie). W javie jakby to było pole klasy to jeszcze refleksją by sie może dało...

Napisz co chcesz osiągnąć, bo sposób w jaki próbujesz to zrobić jest błędny.

0

chcę odwoływać się do zmiennych w pętli for i=1 to 10

i robić to przez odwołanie do zmiennych zmienna1, zmienna2 ....zmienna10

zmienna plus do nazwy wartość i, odwołanie do niej w kodzie zmienna1 = 1 + 1

2

@Pawel412, chyba najlepszym i najbardziej sensownym rozwiązaniem będzie użycie zwyczajnej tablicy, zamiast tych zmiennych.

0

słusznie dzięki a na przyszłość jest taka możliwość w javie ?

0

Znaczy jaka? Użycia tablicy, czy podstawienia zmiennych tak jak w PHP?

0

użycia zmiennych widziałem to np w pl sql i wcześniej chyba gdzieś

0

Nie, w javie nie da się czegoś takiego zrobić. Trzeba użyć tablicy.

1

Dlaczego w ogóle chciałbyś do tego celu wykorzystywać kilka(set) zmiennych, zamiast jednej tablicy?

0

nie chodzi mi na przyszłość o taką możliwość bo daje niesamowite możliwości wykonywać kod z zmiennej string

ale rozumiem że nie ok dzięki za pomoc

2

niesamowite możliwości wykonywać kod z zmiennej string

Co w 9 na 10 przypadków jest bardzo złym pomysłem. Nie, java nie udostępnia czegoś takiego jak eval().

0

@Shalom, na pewno nie da się w Javie kompilować stringa do kodu w locie? To w takim razie bardzo uboga technologia.

0

Standardowo nie, przynajmniej nie javę (bo można ewaluować jythona i javascript). Są biblioteki które na to pozwalaja a w samej javie można od biedy stworzyc dynamicznie klasę i ją sobie skompilować a potem uruchomić, ale to nie jest juz takie proste jak wywołanie eval().

1 użytkowników online, w tym zalogowanych: 0, gości: 1