Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Java] Neues Objekt vom anderen Objekt (https://www.delphipraxis.net/146734-%5Bjava%5D-neues-objekt-vom-anderen-objekt.html)

mjustin 26. Jan 2010 21:03

Re: [Java] Neues Objekt vom anderen Objekt
 
Zitat:

Zitat von Khabarakh
In .NET würde das auch über Generics funktionieren, aber da die JVM keine besitzt...

Wie jetzt, keine Generics mehr? Hat Oracle die etwa schon aus der Java Language Specification entfernt? Und vor allem: Barum?

Cheers,
Mike

xaromz 26. Jan 2010 22:21

Re: [Java] Neues Objekt vom anderen Objekt
 
Hallo,
Zitat:

Zitat von mjustin
Wie jetzt, keine Generics mehr? Hat Oracle die etwa schon aus der Java Language Specification entfernt? Und vor allem: Barum?

Generics waren noch nie Teil der JVM. Die sind ein reines Compile-Feature. Deshalb gibt es auch bei Generics keine Runtime-Typprüfung. Hab ich schon oft geflucht darüber.
Du weißt ja: das Gegenteil von gut ist gut gemeint.

Gruß
xaromz

mjustin 27. Jan 2010 05:48

Re: [Java] Neues Objekt vom anderen Objekt
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von mjustin
Wie jetzt, keine Generics mehr? Hat Oracle die etwa schon aus der Java Language Specification entfernt? Und vor allem: Barum?

Generics waren noch nie Teil der JVM. Die sind ein reines Compile-Feature. Deshalb gibt es auch bei Generics keine Runtime-Typprüfung. Hab ich schon oft geflucht darüber.
Du weißt ja: das Gegenteil von gut ist gut gemeint.

Gruß
xaromz

Wie hätte man das konkrete Problem denn mit Generics lösen können? Es sieht ja eher nach einem Fall für Reflektion aus. (Vorteil des Type Erasure bei Java ist, dass man Bibliotheken mit und ohne Generics mischen kann - jede Medaille hat zwei Seiten, man kann so problemlos alte Libraries weiterverwenden wenn man sich an ein paar Regeln hält, und muss sie nicht neu kompilieren oder in zwei Versionen pflegen.)

Viele Grüße,
Michael

memphis 27. Jan 2010 08:51

Re: [Java] Neues Objekt vom anderen Objekt
 
Das sauberste ist imo das Factory Pattern:

Code:
interface Factory{
  public i createObject();
}

class SFactory implements Factory{
  public i createObject(){
    return new s();
  }
}

class TFactory implements Factory{
  public i createObject(){
    return new t();
  }
}
deinen Code musst du dann wie folgt anpassen:

Code:
Factory factory = null;

if (Math.random() < 0.5) {
  factory = new SFactory();
} else {
  factory = new TFactory();
}

o = factory.createObject();

// Jetzt will ich das er das obige wiederholt:
o = factory.createObject();

Khabarakh 27. Jan 2010 17:56

Re: [Java] Neues Objekt vom anderen Objekt
 
Zitat:

Zitat von mjustin
Wie hätte man das konkrete Problem denn mit Generics lösen können?

Code:
public T GimmeSomeGraph<T>()
   where T : IGraph, new() // !
{
   ...new T()...
}
Quasi ein vereinfachtes Factory Method Pattern ;) .


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz