Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl
Ik denk dat je gewoon moet kijken wat voor string je binnen krijgt, en dan zelf de daarbij behorende methode aanroepen.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
if (inputstream == getinfo(truus))
{
getinfo(truus);
}
Dit lijkt me geen nette oplossing.
Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl
(en, ja, eval is evil... als het puur om een 'kijk, het kan/werkt/mag ik een cijfer' gaat scheelt 't echter een boel gedoe
Ik zou deze suggestie niet eens moeten geven want 't is kneiter slecht en feitelijk wil je niet eens weten van 't bestaan van die functie. Maar goed.
[ Voor 48% gewijzigd door RobIII op 01-07-2009 19:51 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
java kent toch ook eval?RobIII schreef op woensdag 01 juli 2009 @ 19:49:
eval()
(en, ja, eval is evil... als het puur om een 'kijk, het kan/werkt/mag ik een cijfer' gaat scheelt 't echter een boel gedoe)
Ik zou deze suggestie niet eens moeten geven want 't is kneiter slecht en feitelijk wil je niet eens weten van 't bestaan van die functie. Maar goed.
Ik zou zweren dat ik PHP zag
This message was sent on 100% recyclable electrons.
Wat ik verwacht te moeten hebben:
1
2
3
| dbconnection verbinding = new dbconnection(); msg = getinfo(truus); Method methode = verbinding.getMethod(msg); |
Wat hij hopelijk ziet als; methode = verbinding.getinfo(truus);
Uiteraard werkt dit niet, alleen snap ik nog niet waarom.
De pagina's:
http://softwareas.com/reflecting-on-varargs
http://www.developer.com/java/ent/article.php/3507696
http://java.sun.com/j2se/...String,%20java.lang.Class[])
Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl
Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl
Dan kun je echt helemaal makkelijk gewoon de code uitvoeren op de remote server. Mocht je het eens willen proberen kun je kijken naar Oracle internet application server 10g of weblogic.
[ Voor 10% gewijzigd door krvabo op 01-07-2009 21:53 ]
Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.
Be fast .... Be furious....
Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl
Be fast .... Be furious....
Link jij nou serieus naar RoseIndia?Bl4ckviper schreef op woensdag 01 juli 2009 @ 22:00:
Ik zou toch ff naar RMI kijken en ik denk dat dit wat simpeler is.. Gewoon een HelloWorld dingetje waardoor je het principe begrijpt.
Als er toch één bagger slechte Java gerelateerde website is met afgrijselijke code samples dan is het die toko wel. Nou ja, als het de TS verder maar verder helpt
Zelf überhaupt die site nooit gezien tot net
Wat is er zo slecht aan dan?
[ Voor 21% gewijzigd door Bl4ckviper op 02-07-2009 00:02 ]
Be fast .... Be furious....
Bijvoorbeeld iets als:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public enum Command { COMMAND1 { public void execute() { //Do something } }, COMMAND2 { public void execute() { //Do something else } }; public abstract void execute(); } |
Dat kan je dan vervolgens oproepen met:
1
2
3
4
5
6
7
| String cmdString = getCommandSomehow().toUpperCase(); // make sure the casing matches the definition in Command try { Command command = Enum.valueOf(Command, cmdString); command.execute(); } catch(IllegalArgumentException ex) { // Handle wrong command } |
Dat gezegd hebbende: ik denk dat RMI (of een webservice) op de lange termijn makkelijker en flexibeler is, maar dit is wel geschikt voor quick and dirty oplossingen
Ik ben niet zo bekend met de nieuwe taal-constructies van java, maar ik vind het er een beetje apart uit zien.
edit:
Ik zie dat java enum's gewoon als static readonly members van een "normale" class ( en dus ook van dat type ) geimplementeerd zijn, dus dan maakt het wel aannemelijker dat het idd kan. Ik ben gewend dat een enum alleen een lijst met constanten is, en dus geen methodes kan bevatten
[ Voor 33% gewijzigd door Woy op 02-07-2009 10:12 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
(Alleen raar dat je Enum.valueOf(Command, value) moet doen ipv Command.valueOf(value), wat me logischer lijkt)
[ Voor 115% gewijzigd door .oisyn op 02-07-2009 10:23 ]
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.
Yep, die tip heb ik ook gelezen in de tweede editie van Effective Java van Josh Bloch.Janoz schreef op donderdag 02 juli 2009 @ 10:15:
Wij hebben laatst nog een enum gebruikt voor het implementeren van een singleton. Die enum bestond alleen uit INSTANCE met de daarbij behorende methoden.
Had er nog nooit bij stilgestaan, maar vond het wel een aardige invalshoek.
[ Voor 3% gewijzigd door Woy op 02-07-2009 10:25 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Dat kan ook, ze hebben allebei hun toepassing..oisyn schreef op donderdag 02 juli 2009 @ 10:21:
Creatief. Ik wist ook niet dat dat kon met die methods op enum members. Wel cool. Gaat op de proton todo list
(Alleen raar dat je Enum.valueOf(Command, value) moet doen ipv Command.valueOf(value), wat me logischer lijkt)
Het mooie van methodes in enums is dat je niet of veel minder met switch-case statements hoeft te werken, en je ook geen case kunt vergeten.
De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"
LoL Nou ja dit voorbeeld zag er wel ok uit.
Kende die hele site nog niet Goed om te weten. Neem ik het daar niet meer zo serieus mocht ik er nog eens opkomen..
Be fast .... Be furious....
Zo nieuw is enum nou ook weer niet, inmiddels alweer een jaar of 6 denk ik. Juist de uitgebreide mogelijkheden van de enum in Java maakt het een erg mooie taalconstructie: het is niet slechts een opsomming van waarden, maar je kan ook state en behaviour toekennen. Een enum (zoals ik toepaste) is een combinatie van een abstract class met daarin de diverse implementaties (als singletons).Woy schreef op donderdag 02 juli 2009 @ 10:05:
Is dat een valide constructie in Java? Ik heb nog nooit gezien dat enum members methodes kunnen bevatten. En zijn de enum members dat automatisch een sub-class van het enum type?
Ik ben niet zo bekend met de nieuwe taal-constructies van java, maar ik vind het er een beetje apart uit zien.
edit:
Ik zie dat java enum's gewoon als static readonly members van een "normale" class ( en dus ook van dat type ) geimplementeerd zijn, dus dan maakt het wel aannemelijker dat het idd kan. Ik ben gewend dat een enum alleen een lijst met constanten is, en dus geen methodes kan bevatten
Aangevuld met erop kunnen switchen, EnumSet en nog een aantal dingen die ik vast vergeten ben (ik ben eigenlijk tester en programmeren doe ik meer als ondersteuning voor het testen en als hobby) is het iets dat iedere Java programmeur in zijn toolkit moet hebben.
Dat was de methode die ik in de API-documentatie van Enum zag staan, ik heb niet gekeken naar de verdere definitie van enum. Ik heb net even uitgeprobeerd en Command.valueOf(value) werkt ook gewoon. Waarschijnlijk is de Enum.valueOf(class, value) eerder bedoeld voor de iets meer dynamische use cases..oisyn schreef op donderdag 02 juli 2009 @ 10:21:
Creatief. Ik wist ook niet dat dat kon met die methods op enum members. Wel cool. Gaat op de proton todo list
(Alleen raar dat je Enum.valueOf(Command, value) moet doen ipv Command.valueOf(value), wat me logischer lijkt)
[ Voor 18% gewijzigd door Remus op 02-07-2009 12:01 ]
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.
Remus schreef op donderdag 02 juli 2009 @ 11:54:
[...]
Zo nieuw is enum nou ook weer niet, inmiddels alweer een jaar of 6 denk ik.
Het is ook minstens zo lang geleden dat ik zelf een Java app geschreven heb
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Zoals iemand al aangaf, wat je zoekt is RMI, erg makkelijk en werkt prima, voor zover Java prima werkt danbattler schreef op woensdag 01 juli 2009 @ 19:38:
Ik ben een client-server applicatie aan het maken. Het is de bedoeling dat de clients methodes kan aanroepen die in server staan. Dit zal verre van optimaal zijn maar voor een klein schaalig schoolproject als dit voldoende.
Nu verstuur ik met een outputstream gewoon de methode bv. getinfo(truus).
Dit komt ook gewoon aan bij servers als inputstream getinfo(truus).
Hoe zorg ik ervoor dat de server dit ziet als een methode (alles wat ik verzend is een methode)?
'You like a gay cowboy and you look like a gay terrorist.' - James May
Gelukkig kan dat ook..oisyn schreef op donderdag 02 juli 2009 @ 10:21:
(Alleen raar dat je Enum.valueOf(Command, value) moet doen ipv Command.valueOf(value), wat me logischer lijkt)
1
2
3
4
5
6
7
8
9
| public class TestEnum{ enum Height { Heigh, Mid, Low }; public static void main(String... args) { Height h = Height.valueOf("Mid"); System.out.println(h); } } |