What are clouds made of? Linux servers mostly!
Trouwens, je slaat je eigengedefinieerde objecten (= klassevariabelen?) toch niet op als type Object hoop ik?
How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.
vervolgens geeft getClass().getMethods() de methoden van de classe
Waarom implementeer je niet gewoon bij elk object netjes de toString method dan?
Neem je whisky mee, is het te weinig... *zucht*
Verwijderd
hiervoor?momania schreef op woensdag 03 augustus 2005 @ 14:15:
Waarom wil je dit doen? Om de waardes die in de objecten zitten in een string te krijgen??
Waarom implementeer je niet gewoon bij elk object netjes de toString method dan?
http://jakarta.apache.org...ctionToStringBuilder.html
Dat is inderdaad waar ik naartoe wilde. Die gebruik ik zelf ook regelmatig en scheelt je gewoon enorm veel coding
Neem je whisky mee, is het te weinig... *zucht*
Ok dan, die kende ik (ook) nog niet, best handig!
How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| package test;
import test.ServiceTypes;
import test.ServiceType2;
import java.lang.reflect.*;
public class Test {
// Some constructor to create 2 things of my own type.
public Test(
ServiceTypes myTest1,
ServiceTypes myTest2
) {};
public void getMethodsFromClasses()
{
Method aMethodArray[];
for (int j = 0; j < this.getClass().getClasses().length; j++)
{
aMethodArray = this.getClass().getClasses()[j].getClass().getMethods();
for (int i = 0; i < aMethodArray.length; i++)
{
System.out.println(aMethodArray[i].getName());
i++;
}
j++;
}
}
/**
* @param args
*/
public static void main(String[] args)
{
ServiceTypes st1 = new ServiceTypes();
ServiceTypes st2 = new ServiceTypes();
ServiceType2 st2_1 = new ServiceType2();
st1.setActivation();
st2.clearActivation();
st2_1.setE164nr("48226438871");
Test myObj = new Test(st1,st2);
myObj.getMethodsFromClasses();
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| package test;
public class ServiceTypes {
public boolean bActivation;
void setActivation()
{
bActivation = true;
}
void clearActivation()
{
bActivation = false;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| package test;
public class ServiceType2 {
public String sE164number;
void setE164nr(String sNr)
{
sE164number = sNr;
}
void clearActivation()
{
sE164number = "";
}
} |
Wat ik dus nu wil doen is dat ik dus kan uitvissen wat de waardes zijn van bijv. sE164number zonder dat ik de naam van de variabelen enzo weet.
In getMethodsFromClasses heb ik staan wat ik er tot nu toe van begrepen heb. Ik moet echter zeggen dat ik er niet helemaal uitkom hoe ik nu bij de rest v.d. zooi kom zonder de namen te kennen. Ik zal wel iets kleins over het hoofd zien ....
What are clouds made of? Linux servers mostly!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| /** * @param args */ public static void main(String[] args) { ServiceTypes st1 = new ServiceTypes(); ServiceTypes st2 = new ServiceTypes(); ServiceType2 st2_1 = new ServiceType2(); st1.setActivation(); st2.clearActivation(); st2_1.setE164nr("48226438871"); Test myObj = new Test(st1,st2); //myObj.getMethodsFromClasses(); <- die dus niet. System.out.println(st1.toString()); System.out.println(st2.toString()); } |
Dat lijkt mij het simpelst.
Je class zou er dan zo uitmoeten zien:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| package test; import org.apache.commons.lang.builder.ReflectionToStringBuilder; public class ServiceTypes { public boolean bActivation; void setActivation() { bActivation = true; } void clearActivation() { bActivation = false; } public String toString() { return ReflectionToStringBuilder.toString(this); } } |
Dan doe je het ook met reflection, maar je hoeft het zelf niet te schrijven.
Neem je whisky mee, is het te weinig... *zucht*
Ik zou echt niet weten hoe ik het voor elkaar ga krijgen om in al die types dat toString gebeuren erin te krijgen. Het zijn er zo'n 250+, dus ik ga het niet met de hand doen......
Is er maybe een manier om die toString ergens in een .java te mikken en vervolgens in het xsd een reference ofzo op te nemen? Ik heb zelf nog nooit van zoiets gehoord, maar goed.... who knows.
What are clouds made of? Linux servers mostly!
Verwijderd
kun je die generator niet wijsmaken dat hij van een bepaalde class moet extenden? En dan kun je misschien in die class die toString implementerenFvH schreef op donderdag 04 augustus 2005 @ 12:39:
JupsDat heb ik geprobeerd en dat werkt. Enige probleem is.... mijn types worden gegenereerd vanaf een xsd. Dus de .java files voor de types worden dynamisch gemaakt.
Ik zou echt niet weten hoe ik het voor elkaar ga krijgen om in al die types dat toString gebeuren erin te krijgen. Het zijn er zo'n 250+, dus ik ga het niet met de hand doen......
Is er maybe een manier om die toString ergens in een .java te mikken en vervolgens in het xsd een reference ofzo op te nemen? Ik heb zelf nog nooit van zoiets gehoord, maar goed.... who knows.
Hier gebruiken we EJBGen en daar kunnen we per bean zeggen welke specifieke class 'uitgebreid' (ge-extended
[ Voor 13% gewijzigd door Verwijderd op 04-08-2005 14:40 ]
What are clouds made of? Linux servers mostly!