App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Java -> Name des Arrays ausgeben...
- Ersteller Cybered
- Erstellt am
Cybered
Admiral Special
- Mitglied seit
- 22.09.2002
- Beiträge
- 1.625
- Renomée
- 14
- Standort
- Unimatrix-Zero
- Aktuelle Projekte
- Spin;Seti;QMC
- Lieblingsprojekt
- SETI
- Meine Systeme
- Athlon 64 X2 3800+
- BOINC-Statistiken
Hi,
ich habe mich durchs Netz gewühlt, aber nix gefunden.
Man kann ja mit
die länge des feldes ermitteln...gibt es jetzt auch ein argument was mir den Feldnamen zurückgibt...so was in der Art
...soll dann als ergebniss
zurückgeben...um es zB. mit einer System.out.print Anweisung auszugeben..
Damit soll praktisch in einem Projekt für die Schule gezeigt werden, das ich mich 2 mal auf das gleiche Feld beziehe...ohne einen einfach Text dahinzuschreiben...der name soll quasi live angezeigt werden...hoffe ihr versteht mich
thx4all
Cybered
ich habe mich durchs Netz gewühlt, aber nix gefunden.
Man kann ja mit
Code:
feldname.length
Code:
feldname.name
Code:
feldname
Damit soll praktisch in einem Projekt für die Schule gezeigt werden, das ich mich 2 mal auf das gleiche Feld beziehe...ohne einen einfach Text dahinzuschreiben...der name soll quasi live angezeigt werden...hoffe ihr versteht mich
thx4all
Cybered
Ist nicht möglich, Variablennamen existieren nicht bei Runtime. Denke das wird bei Java auch nicht anders sein, auch wenn es JIT compiled wird und nicht vorübersetzt.
Ich denke aber wenn Du sowas willst, stimmt schon mal etwas im Programmdesign nicht.
Wenn Du beweisen willst, dass du am selben String arbeitest, erstelle einfach eine Klasse mit dem String und einer einzigartigen ID (z.B. Zeit) und beweise, dass Du immer wieder das selbe Objekt ansprichst indem Du diese ID ausgibst.
Aber ehrlich gesagt weiß ich nicht, ob es Dein Problem löst, könntest Du es bitte (viel) genauer beschreiben.
Ich denke aber wenn Du sowas willst, stimmt schon mal etwas im Programmdesign nicht.
Wenn Du beweisen willst, dass du am selben String arbeitest, erstelle einfach eine Klasse mit dem String und einer einzigartigen ID (z.B. Zeit) und beweise, dass Du immer wieder das selbe Objekt ansprichst indem Du diese ID ausgibst.
Aber ehrlich gesagt weiß ich nicht, ob es Dein Problem löst, könntest Du es bitte (viel) genauer beschreiben.
Cybered
Admiral Special
- Mitglied seit
- 22.09.2002
- Beiträge
- 1.625
- Renomée
- 14
- Standort
- Unimatrix-Zero
- Aktuelle Projekte
- Spin;Seti;QMC
- Lieblingsprojekt
- SETI
- Meine Systeme
- Athlon 64 X2 3800+
- BOINC-Statistiken
Also ich schreibe Zufallszahlen in ein Array...der name ist meinetwegen "feldname"...
dann gebe ich das Array "feldname" aus...nun sortiere ich das Array "feldname"...und gebe es erneut aus...ich möchte also einfach zeigen, das die erste Ausgabe aus dem Array"feldname" kommt...und die zweite eben auch, nur eben sortiert.
Cybered
dann gebe ich das Array "feldname" aus...nun sortiere ich das Array "feldname"...und gebe es erneut aus...ich möchte also einfach zeigen, das die erste Ausgabe aus dem Array"feldname" kommt...und die zweite eben auch, nur eben sortiert.
Cybered
Habe mich verlesen, du hast einen Array und kein String, ansonsten stimmt alles.
Wie willst du beweißen, dass es das selbe Array ist, es ist doch aus dem Code eindeutig ersichtlich und ohne den Code kannst du es nicht zeigen.
Nehmen wir an du hast viele solcher Arrays, dann bilde eine Klasse die das Array und eine Identifikation hält z.B einfach Index oder einen String oder was dir sonst einfällt.
Anstatt Arrays zu erstellen, erstellst du einfach Objekte dieser Klasse mit eigener ID.
Wie willst du beweißen, dass es das selbe Array ist, es ist doch aus dem Code eindeutig ersichtlich und ohne den Code kannst du es nicht zeigen.
Nehmen wir an du hast viele solcher Arrays, dann bilde eine Klasse die das Array und eine Identifikation hält z.B einfach Index oder einen String oder was dir sonst einfällt.
Anstatt Arrays zu erstellen, erstellst du einfach Objekte dieser Klasse mit eigener ID.
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Das könnte unter Java sehr wohl anders sein. Java bietet wie auch .NET Reflection und bei .NET geht sowas. Die Wahrscheinlichkeit, dass es auch bei Java über Reflection geht, ist IMHO ziemlich hoch.Ist nicht möglich, Variablennamen existieren nicht bei Runtime. Denke das wird bei Java auch nicht anders sein, auch wenn es JIT compiled wird und nicht vorübersetzt.
Wusste nicht, dass es mit .Net geht, programmiere aber auch nicht darauf.
Edit: Have etwas über Java Reflektionen gelesen, es stimmt, es ist unter Java möglich, man lernt nie aus.
Aber abgesehen davon ob es möglich ist oder nicht, denke ich dass man helfen sollte andere Lösungen zu finden, denn so eine Lösung ist auf keinen Fall als sauber zu bezeichnen (oder kennt jemand einen Fall, bei dem dies die einzige Lösung ist?) und in diesem Fall sogar aufwendiger (allein die Recherchen ).
Edit: Have etwas über Java Reflektionen gelesen, es stimmt, es ist unter Java möglich, man lernt nie aus.
Aber abgesehen davon ob es möglich ist oder nicht, denke ich dass man helfen sollte andere Lösungen zu finden, denn so eine Lösung ist auf keinen Fall als sauber zu bezeichnen (oder kennt jemand einen Fall, bei dem dies die einzige Lösung ist?) und in diesem Fall sogar aufwendiger (allein die Recherchen ).
Zuletzt bearbeitet:
Aber ist das nicht ein wenig albern?
1. Wenn man in den Quelltext schaut, sieht man, dass es das selbe Array ist.
2. Wenn man nicht in den Quelltext schauen kann, kann man doch behaupten, man verwendet die reflection api (wenn das überhaupt geht), schreibt da aber statisch was hin.
Zum Theme reflection:
Soweit ich weiß kann man damit nur Klassen und deren Variablen und methoden herausfinden. Wenn man aber eine lokale Variable anlegt (z.B. ein array in der main-Funktion) glaube ich nicht, dass die irgendwie mit reflection zu finden ist.
Und ehe man sich da ne Klasse bastelt, wo man die als Klassenvariable reinbastelt, nur, um sie via Reflection zu finden, und dann ein Mega-Konstrukt baut, um zu beweisen, dass es so heißt, sollte man lieber einfachen, gut nachvollziehbaren Code schreiben.
Denn:
Selbst wenn die Variable so heißt, kann es trotzdem ein anderes Array sein, da ein Array auch nur ein Objekt ist und der Variablenname damit nur ein Pointer.
a heißt immer noch a, ist aber ein anderes Array (das, was mit b angelegt wurde).
Du kannst aber entweder die toString() oder die hashCode() verwenden.
Kurzes Beispiel:
Das Programm liefert folgende Ausgabe:
1. Wenn man in den Quelltext schaut, sieht man, dass es das selbe Array ist.
2. Wenn man nicht in den Quelltext schauen kann, kann man doch behaupten, man verwendet die reflection api (wenn das überhaupt geht), schreibt da aber statisch was hin.
Zum Theme reflection:
Soweit ich weiß kann man damit nur Klassen und deren Variablen und methoden herausfinden. Wenn man aber eine lokale Variable anlegt (z.B. ein array in der main-Funktion) glaube ich nicht, dass die irgendwie mit reflection zu finden ist.
Und ehe man sich da ne Klasse bastelt, wo man die als Klassenvariable reinbastelt, nur, um sie via Reflection zu finden, und dann ein Mega-Konstrukt baut, um zu beweisen, dass es so heißt, sollte man lieber einfachen, gut nachvollziehbaren Code schreiben.
Denn:
Selbst wenn die Variable so heißt, kann es trotzdem ein anderes Array sein, da ein Array auch nur ein Objekt ist und der Variablenname damit nur ein Pointer.
Code:
int[] a = .....;
int[] b = .....;
a = b;
a heißt immer noch a, ist aber ein anderes Array (das, was mit b angelegt wurde).
Du kannst aber entweder die toString() oder die hashCode() verwenden.
Kurzes Beispiel:
Code:
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] a = new int[] { 3, 2, 1, 4, 1 };
int[] b = new int[] { 3, 2, 1, 4, 1 };
System.out.println("Hashcode a:" + a.hashCode());
System.out.println("Hashcode b:" + b.hashCode());
System.out.println("toString() a:" + a);
System.out.println("toString() b:" + b);
// sollten beide gleich aussehen
System.out.println("Array a (unsortiert): " + Arrays.toString(a));
System.out.println("Array b (unsortiert): " + Arrays.toString(b));
// sortiere Array a
Arrays.sort(a);
System.out.println("Hashcode a:" + a.hashCode());
System.out.println("Hashcode b:" + b.hashCode());
System.out.println("toString() a:" + a);
System.out.println("toString() b:" + b);
// sollten beide gleich aussehen
System.out.println("Array a (sortiert): " + Arrays.toString(a));
System.out.println("Array b (unsortiert): " + Arrays.toString(b));
}
}
Das Programm liefert folgende Ausgabe:
Code:
Hashcode a:17523401
Hashcode b:8567361
toString() a:[I@10b62c9
toString() b:[I@82ba41
Array a (unsortiert): [3, 2, 1, 4, 1]
Array b (unsortiert): [3, 2, 1, 4, 1]
Hashcode a:17523401
Hashcode b:8567361
toString() a:[I@10b62c9
toString() b:[I@82ba41
Array a (sortiert): [1, 1, 2, 3, 4]
Array b (unsortiert): [3, 2, 1, 4, 1]
Mach doch einfach eine Klasse, in der das Array und ein String steht. Den String kannst du dann setzen wie du willst, beim Init zB. auf den Namen der Variable, der das neue Objekt zugewiesen wird.
Ob man Arrays bei Java ableiten kann weis ich net, sonst wär das auch noch eine Möglichkeit.
Ob man Arrays bei Java ableiten kann weis ich net, sonst wär das auch noch eine Möglichkeit.
KingHoli
Lt. Commander
- Mitglied seit
- 30.04.2002
- Beiträge
- 106
- Renomée
- 1
- Standort
- Köln
- Mein Laptop
- Dell D600
- Prozessor
- Athlon 64 3500+
- Mainboard
- ASUS A8N32-SLI Deluxe
- Kühlung
- Scythe Mine
- Speicher
- 4x256MB DDR 400 (TwinMos)
- Grafikprozessor
- Gigabyte 6600 GT
- Display
- Medion 19" @ 1600x1200
- HDD
- SAMSUNG SP1203N, Hitachi IC35L090AVV207-0
- Optisches Laufwerk
- Plextor PX-716A, Pioneer 105-S
- Soundkarte
- Audigy 2
- Gehäuse
- Chieftec CS 2001 D
- Netzteil
- Enermax - 431 Watt
- Betriebssystem
- Gentoo & WinXP(zum Zocken)
- Webbrowser
- Firefox
Hmm... also ich weiß nicht, wie Arrays in Java implementiert sind. Wenn es sich aber so verhält wie in c++ (Pointer auf den ersten Speicherblock für das Array), dann kannst du das Array identifizieren, indem man eben diesen Pointer ausgibt (geht unter c++ mit ner Typeconversion oder so und sollte mit Java auch machbar sein) und somit "echt" zeigen, dass auf ein und dasselbe Array zugegriffen wird.
Java arbeitet zwar mit Pointer, "versteckt" sie jedoch, den meisten Java Programmierern ist nicht einmal bewusst, dass die fast die ganze Zeit mit Pointer umherjonglieren.
Ich denke was i_hasser und ich vorgeschlagen haben (Klasse mit Array und Identifikation) ist wirklich die sauberste und einfachste Variante. Aber diese macht auch ehrlich gesagt genau so wenig Sinn, es gibt keinen Weg zu beweisen, dass es das selbe Array ist ohne in den Code zu zeigen, nicht mit Reflektion, nicht mit dem String noch in C/C++ Manier via Addresse, denn all diese Ausgaben könnten ja im Code von uns "gestellt" worden sein.
Ich denke was i_hasser und ich vorgeschlagen haben (Klasse mit Array und Identifikation) ist wirklich die sauberste und einfachste Variante. Aber diese macht auch ehrlich gesagt genau so wenig Sinn, es gibt keinen Weg zu beweisen, dass es das selbe Array ist ohne in den Code zu zeigen, nicht mit Reflektion, nicht mit dem String noch in C/C++ Manier via Addresse, denn all diese Ausgaben könnten ja im Code von uns "gestellt" worden sein.
Eine Möglichkeit sollte es geben. Man implementiert eine Klasse die ein Array nachbildet, von außen (einem anderen Programm/Codestück/wasauchimmer) initialisiert wird, und alleinig zugriff auf einen verschlüsselten Kommunikationskanal zur Außenwelt hat.
Allerdings hat das in der Praxis einen Wert von 0.0 .
Allerdings hat das in der Praxis einen Wert von 0.0 .
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 52K
- Antworten
- 0
- Aufrufe
- 142K
- Antworten
- 0
- Aufrufe
- 401K
- Antworten
- 0
- Aufrufe
- 354K