Toon posts:

[Java] niet gekende klasses gebruiken

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een programma draaien, dit programma gebruikt klasses uit een bepaalde dir, in deze dir kunne classffiles worden bijgezet
het probleem is dat als er classfilesworden bijgezet hier nog geen instanties van bestaan,
met de klasse Class kan dit wel gebeuren, maar kan ik ze dan ook declareren of casten?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

en nu even in het nederlands..

Verwijderd

Topicstarter
klasses komen er na het compileren bij, als ik deze wil gebruiken, hoe kan ik dat dan doen, bij decompilatie zijn ze dus nog onbekend

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kan runtime classes aan je systeem toevoegen. Je moet dan wel zorgen dat je applicatie ook bij die classes kan komen. En verder kan je gebruik maken van de classloader. Je kan dan een String opgeven van de in te laden object. bv. Class x = Class.forName("java.lang.String");

Maar wat bedoel je met decompilatie?

Verwijderd

Topicstarter
ik bedoelde de compilatie
sorry de space bar is een beetje naar de zak

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je moet dan gaan werken met een interface. Je maakt bv de volgende interface:

interface Plugin{
...void methode1();
...void methode2();
}

En jouw class die moet dan die interface implementeren. Die interface moet compile time bekend zijn, maar een instantie van die interface niet :)

Verwijderd

Topicstarter
hier zit het probleem dus
ik zou ook klasseswillen toevoegen waar oorspronkelijk niets overbekend is
maar dat zal dan waarschijnlijk niet lukken

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 29-08 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

je kunt wel mbv reflection alle methodes enumereren en aanroepen
Alleen hoe weet je welke methode je wilt aanroepen als je niets van die klassen weet? Dus waar wil je ze uberhaupt voor gebruiken?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Zoals oisyn al zegt, je programma zou niet weten wat ie ermee moet doen :) Je kan verder die plugin interface wel extreem ruim opzetten:

interface Plugin{
...void go();
}

:+

Verwijderd

Topicstarter
hmmm, maar met de klasse Class zou ik dan wel weten wat er zich allemaal bevind in die klasses, zou je mij iets meer kunnen vertellen over die reflection of een link kunnen geven?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kan op de sunsite genoeg vinden over reflection :)

Maar waarom zou je willen uitzoeken wat die class allemaal kan? Weet je dan wat je wilt doen zo gauw je dat hebt uitgevonden? En als je weet wat je allemaal wilt doen, waarom maak je dan geen gebruik van een interface? Je hoeft dan niet zo ingewikkeld te doen met reflection. Je weet gewoon dat jouw class die interface implementeerd, dus alle verwachte functionaliteit kan ook terug worden gevonden in jouw class.

  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Alarmnummer schreef op 19 oktober 2002 @ 18:08:
Je kan op de sunsite genoeg vinden over reflection :)

Maar waarom zou je willen uitzoeken wat die class allemaal kan? Weet je dan wat je wilt doen zo gauw je dat hebt uitgevonden? En als je weet wat je allemaal wilt doen, waarom maak je dan geen gebruik van een interface? Je hoeft dan niet zo ingewikkeld te doen met reflection. Je weet gewoon dat jouw class die interface implementeerd, dus alle verwachte functionaliteit kan ook terug worden gevonden in jouw class.
Misschien wil meneer Nobele Paladijn een heuse IDE gaan schrijven ;)
Pagina: 1