Toon posts:

[java]dynamisch typcasten

Pagina: 1
Acties:

Verwijderd

Topicstarter
is het mogelijk om een klasse dynamisch te typcasten dus iets als
Object x = typeCast( String className );

ik ben namelijk bezig met een taglibrary te maken die als argument een iterator krijg, ik zou dan ook de klassenaam mee willen geven en de methode waarmee de uitgeprinte waarde moet leveren

ik wil dan bijvoorbeeld doen:
<select : select name="test" content="<%= iterator %>"className="pec.beans.Employee" variable="naam" />

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Class.forName() ?

"Beauty is the ultimate defence against complexity." David Gelernter


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:37

Robtimus

me Robtimus no like you

Aangezien de method naam ook nog niet bekend is moet je maar eens kijken naar reflection.

Maar aangezien reflection evil is kun je wellicht overwegen, als je alle code zelf schrijft, om een gemeenschappelijke interface te maken die door alle classes geimplementeerd wordt, met dus ook dezelfde printnaam.

Bv:
Java:
1
2
3
4
public interface Interface
{
    public void printOrWhatever(...);
}

Dan kun je het ook gebruiken zonder elke keer te casten:

Java:
1
2
Interface i = <create object>;
i.printOrWhatEver(...);

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
ja misschien denk ik wel te moeilijk :d, ik denk nu opeens, als ik nu gewoon String[] gerbuik ipv Iterator

Verwijderd

IceManX schreef op zaterdag 13 november 2004 @ 14:53:
Aangezien de method naam ook nog niet bekend is moet je maar eens kijken naar reflection.
Maar aangezien reflection evil is kun je wellicht overwegen, als je alle code zelf schrijft, om een gemeenschappelijke interface te maken die door alle classes geimplementeerd wordt, met dus ook dezelfde printnaam.
waarom is reflection evil?
tis handig, juist om super-dynamische dingen te bouwen.
b.v. een gui editor heel makkelijk javabeans aan elkaar te knopen, zonder dat je alle mogelijke beans in de editor hoeft in te programmeren
zie hier voor een tutorial erover voor de mensen die onbekend zijn met reflection

[ Voor 4% gewijzigd door Verwijderd op 13-11-2004 15:50 ]


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Verwijderd schreef op zaterdag 13 november 2004 @ 15:33:
[...]

waarom is reflection evil?
tis handig, juist om super-dynamische dingen te bouwen.
b.v. een gui editor heel makkelijk javabeans aan elkaar te knopen, zonder dat je alle mogelijke beans in de editor hoeft in te programmeren
zie hier voor een tutorial erover voor de mensen die onbekend zijn met reflection
Hoe vaak schrijf je nou een javabeans/gui editor? :?

"Beauty is the ultimate defence against complexity." David Gelernter


  • momania
  • Registratie: Mei 2000
  • Nu online

momania

iPhone 30! Bam!

Omdat reflection traag is en je het dus niet moet gebruiken voor stukken code die veel uitgevoerd worden. Als je ergens in een cruciaal stuk code veel reflection nodig hebt, dan denk ik dat je beter nog eens over je opzet van je code kan gaan nadenken, aangezien je dat beter kan oplossen met interfaces etc. :)

Neem je whisky mee, is het te weinig... *zucht*


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
En dan is nog steeds reflection onhandig. Je hebt veel mooiere concepten om programma's te maken die werken op typen or schema's in het wereldje van generic programming. Maar dat is een ander onderwerp :)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]

Pagina: 1