Objekte dynamisch über eine Methode erzeugen

Status
Nicht offen für weitere Antworten.

tuomo

Aktives Mitglied
Hallo Java-Gemeinde,

ich habe ein Problem, wo ich nicht einmal weiß, ob es sich überhaupt lösen lasst. Und zwar folgendes:
Angenommen ich habe eine Klasse Auto:
Code:
public class Auto {
  
  public Auto() {}

  public void starteMotor() {}
}
und eine Klasse Fuhrpark:
Code:
public class Fuhrpark {
  public Fuhrpark() {}

  public void kaufeAuto(String autoName) {
    Auto obj_"autoName" = new Auto();
  }

  public void benutzeAuto(String autoName) {
    obj_"autoName".starteMotor();
  }
}
Wie kann ich es realisieren, dass der String, der an die Methoden kaufeAuto() übergeben wird, im Object-Name verwendet werden kann? Das Gleiche gilt für die Methode benutzeAuto(). Ich will über den String-Parameter ein ganz spezielles Objekt ansprechen bzw. benutzen.

Und wenn sich das (wie auch immer) realisieren lässt, ist es möglich, die Objekte als static, public, private, protected zu deklarieren?

Ich dachte, ich habe das schon mal gehört oder gesehn, dass das möglich ist. Aber leider weiß ich absolut nicht mehr wo, geschweige denn wie. Kann auch sein, dass das in C/C++ ging. Ich hab auch keine Idee, wonach ich in meinen Büchern suchen sollte.

Wenn jemand einen Geistesblitz zu meiner Problematik hat, wäre ich unendlich dankbar.
 

SnooP

Top Contributor
das geht nicht... und das möchtest du auch gar nicht tun... was du möchtest ist eine anonyme Menge von Objekten erstellen und diese in einer Liste speichern... siehe dafür in Büchern "Collections".
 

tuomo

Aktives Mitglied
Naja, das ist eigentlich auch nicht was ich machen will.

Ich hatte auch schon überlegt, mir eine Liste vom Typ Auto anzulegen, aber rein performence-technisch ist das, bei einer großen Menge an verwalteten Objekten, ehr ungünstig. Ich will ja nicht jedes Mal, wenn ich auf ein Objekt zugreife, vorher die gesamte Liste durchsuchen.

Aber Danke für Deine Hilfe!
 

happy_robot

Bekanntes Mitglied
tuomo hat gesagt.:
Naja, das ist eigentlich auch nicht was ich machen will.

Ich hatte auch schon überlegt, mir eine Liste vom Typ Auto anzulegen, aber rein performence-technisch ist das, bei einer großen Menge an verwalteten Objekten, ehr ungünstig. Ich will ja nicht jedes Mal, wenn ich auf ein Objekt zugreife, vorher die gesamte Liste durchsuchen.

Aber Danke für Deine Hilfe!
lege deine "autos" in einer hashmap ab und verpasse ihnen ein interface mit den methoden die du ansprechen willst.

dann kannst du direkt mit namen darauf zugreifen.
 

tuomo

Aktives Mitglied
Ähm, kannst Du das ein bißchen genauer erklären? Bis jetzt kann ich mir nicht wirklich vorstellen, wie das funktionieren soll bzw. zu realisieren ist.
 

ARadauer

Top Contributor
aber rein performence-technisch ist das, bei einer großen Menge an verwalteten Objekten, ehr ungünstig.

nein!

verwende eine hashmap, das suchen ist meiner meinung nach extrem performant.



Code:
HashMap<String, String> map2 = new HashMap<String, String>();
        String toFind = null;
        for(int i = 0; i < 10000000; i++){
        	String str = System.currentTimeMillis()+"";
        	if(i==500000)
        		toFind = str.substring(str.length()-7, str.length());
        	map2.put(str.substring(str.length()-7, str.length()), str);        	
        }
        System.out.println("start");
        long time = System.currentTimeMillis();
        String str = map2.get(toFind);
        System.out.println("Dauer:"+(System.currentTimeMillis()-time)+":");
        if(str!=null)
        	System.out.println(str);

Durchsucht 10 Mio Elemente, in einer Zeit die durch
Code:
 long time = System.currentTimeMillis();
        String str = map2.get(toFind);
        System.out.println("Dauer:"+(System.currentTimeMillis()-time)+":");
nicht messbar ist.

Einzig das einsortieren in die Map dauert halt ein wenig rund 7 Sekunden für 10 Mio Elemente. Ich hab zwar einen neuen Rechner, aber ich denke wir bewegen uns bei alten Rechnern auch in einem Zeitraum, den der Benutzer des Programms abwarten kann[/quote]
 

happy_robot

Bekanntes Mitglied
runtergehackert, ohne gewähr:

Code:
public abstract class Auto {

      private static HashMap<String, Auto> mapAuto = new  HashMap<String, Auto>();

      public static Auto get(String name) {
           return mapAuto.get(name);
      }

      public static void create(String name, Auto auto) {
           mapAuto.put(name, auto);
      }

      protected Auto() {
      }

      public void starteMotor();
}

public class Audi extends Auto {

      public void starteMotor() {
      }
      
}

public class Bmw extends Auto {

      public void starteMotor() {
      }
      
}

........
Auto.create("Audi", new Audi());
Auto.create("Bmw", new Bmw());

Auto myAudi = Auto.get("Audi");
....
 

ARadauer

Top Contributor
so ungefähr
Code:
public class Fuhrpark { 

   HashMap<String, Auto> autos = new HashMap<String,Auto>();

  public Fuhrpark() {} 

  public void kaufeAuto(String autoName) { 
    autos.put(autoName, new Auto("autoName"));
  } 

  public void benutzeAuto(String autoName) { 
        autos.get(autoName).starteMotor();
  } 
}

PS: Wie schon oft von anderen vorgeschlagen, es muss ein Meldung "Achtung während du so lange an der Antwort gebastelt hast, hat bereits ein anderer gewantwortet...."
 

happy_robot

Bekanntes Mitglied
@ARadauer:

deine lösung hat aber auch eine daseinsberechtigung, da sie mir durchaus näher an der praxis zu sein scheint :)
allerdings schliesst du probefahrten kategorisch aus :)

nicht jedes auto das man fahren will muss man auch vorher kaufen.
 

tuomo

Aktives Mitglied
Jungs und Mädels, ich dachte euch wie verrückt! Ich werde mich jetzt mal an die Umsetzung machen und ausprobieren, ob ich das auch hinkriege. Hab mich zwischenzeitlich schon mal in das Thema "HashMap" eingelesen, macht eigentlich einen nicht all zu schweren Eindruck.

Und dann bin ich noch über das Thema "Reflection" gestolpert, aber ich denke, dabei bleibt es auch, wenn ich mir so eure Lösungsvorschläge anschaue.

Also nochmals vielen Dank. Ich meld mich noch mal, wie ich 's zu Schluß umgesetzt hab.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Dynamisch Objekte unterschiedlicher Typen erzeugen Allgemeine Java-Themen 6
H Objekte m. versch. Interf. dynamisch erzeugen Allgemeine Java-Themen 11
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
MiMa Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
OnDemand Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4
T ObjectInputStream - Arrayliste, die unbekannte Objekte enthält Allgemeine Java-Themen 9
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
D Grafische Objekte zeichnen Allgemeine Java-Themen 4
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
F Referenzen auf Objekte Allgemeine Java-Themen 5
H Eclipse und Objekte Allgemeine Java-Themen 6
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
I Pattern zum Erweitern existierender Objekte Allgemeine Java-Themen 4
N Dynamische Objekte / DB Allgemeine Java-Themen 5
J Objekte binär speichern Allgemeine Java-Themen 10
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
V Objekte in Kategorien einteilen. Allgemeine Java-Themen 6
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
W Objekte speichern mit JFileChooser Allgemeine Java-Themen 8
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
L Objekte in Liste packen Allgemeine Java-Themen 2
S XML in Objekte wandeln. Euer Rat? Allgemeine Java-Themen 12
G Objekte serialisieren Allgemeine Java-Themen 2
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
S Objekte mit Arrays Allgemeine Java-Themen 9
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S erzeugte objekte zählen Allgemeine Java-Themen 3
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7
E tiefe Kopie nicht serialisierbarer Objekte Allgemeine Java-Themen 3
J Speicherbedarf und persistente Objekte Allgemeine Java-Themen 4
J ArrayList Objekte anhand Propertywerte filtern Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben