|
| Problem: objekter/array.... Fra : holst |
Dato : 05-12-00 10:31 |
|
Davs,
Jeg har et array fyldt med navne, og jeg ønsker at skabe objekter, som
hedder disse navne. Hvordan gør jeg det??
Jeg har bl.a. prøvet følgende i en for-løkke:
Type Array[i] = new Type(parametre);
Compileren fortæller mig, at Array'et er defineret andet sted i koden....det
er også rigtigt, men hvordan kan jeg ellers give de nye objekter de samme
navne, som dem der står i Arrayet.
holst
| |
Dennis Thrysøe (05-12-2000)
| Kommentar Fra : Dennis Thrysøe |
Dato : 05-12-00 11:03 |
|
Måske sådan noget her?
String[] navne = {"a", "b", "c"};
Type[] objekter = new Type[navne.length];
for (int i=0; i<navne.length; i++)
objekter[i] = new Type(navne[i]);
-dennis
holst wrote:
> Davs,
>
> Jeg har et array fyldt med navne, og jeg ønsker at skabe objekter, som
> hedder disse navne. Hvordan gør jeg det??
> Jeg har bl.a. prøvet følgende i en for-løkke:
>
> Type Array[i] = new Type(parametre);
>
> Compileren fortæller mig, at Array'et er defineret andet sted i koden....det
> er også rigtigt, men hvordan kan jeg ellers give de nye objekter de samme
> navne, som dem der står i Arrayet.
>
> holst
| |
holst (05-12-2000)
| Kommentar Fra : holst |
Dato : 05-12-00 11:25 |
|
Dennis Thrysøe <dt@netnord.dk> skrev i en
nyhedsmeddelelse:3A2CBD5D.4030308@netnord.dk...
> Måske sådan noget her?
>
> String[] navne = {"a", "b", "c"};
> Type[] objekter = new Type[navne.length];
Laver du et nyt tomt array med samme længde som navne[]?? Hvorfor??
> for (int i=0; i<navne.length; i++)
> objekter[i] = new Type(navne[i]);
Elementet objekter[i] vil altid være null, da arrayet er tomt. Det er jo
ikke meningen - det skal indeholde navnene!!
Jeg har prøvet følgende men det virker ikke:
String[] core = {"a", "b",.....};
for (int i = 0; i<core.length; i++)
Core core[i] = new Core(parametre);
Core er en klasse, som jeg selv har programmeret! Compileren tror at jeg
først definerer core[] som en string, og dernæst i forløkken forsøger at
definere core[] til at være af typen Core. Det jeg i virkeligheden ønsker er
at indholdet i core[i] skal være navnet på det nye objekt af typen Core!!
holst
| |
Dennis Thrysøe (05-12-2000)
| Kommentar Fra : Dennis Thrysøe |
Dato : 05-12-00 12:16 |
|
holst wrote:
> Dennis Thrysøe <dt@netnord.dk> skrev i en
> nyhedsmeddelelse:3A2CBD5D.4030308@netnord.dk...
>
>> Måske sådan noget her?
>>
>> String[] navne = {"a", "b", "c"};
>> Type[] objekter = new Type[navne.length];
>
>
> Laver du et nyt tomt array med samme længde som navne[]?? Hvorfor??
Jeg havde misforstået dit formål.
>
>> for (int i=0; i<navne.length; i++)
>> objekter[i] = new Type(navne[i]);
>
>
> Elementet objekter[i] vil altid være null, da arrayet er tomt. Det er jo
> ikke meningen - det skal indeholde navnene!!
> Jeg har prøvet følgende men det virker ikke:
>
> String[] core = {"a", "b",.....};
>
> for (int i = 0; i<core.length; i++)
> Core core[i] = new Core(parametre);
>
> Core er en klasse, som jeg selv har programmeret! Compileren tror at jeg
> først definerer core[] som en string, og dernæst i forløkken forsøger at
> definere core[] til at være af typen Core. Det jeg i virkeligheden ønsker er
> at indholdet i core[i] skal være navnet på det nye objekt af typen Core!!
Du behøver ikke erklere en ny variabel for hver plads i arrayet. Bare
instantiere et nyt objetk og tildele referencen til en plads i arrayet.
Men igen jeg havde misforstået formålet.
Jeg forstår ikke 100% hvad du mener med "navnet på det nye objekt af
typen Core". Du vil i mit eksempel (omskrevet) få en reference til en
instans af Core, som så igen kunne indeholde navnet, som kom med i
constructoren.
Hvis du tænker på navnet på en variabel (local eller field) som referer
instansen, så skal du kigge på Reflection. Men hvad skulle du i givet
fald bruge dét til? Det lyder forkert.
-dennis
| |
Morten Primdahl (05-12-2000)
| Kommentar Fra : Morten Primdahl |
Dato : 05-12-00 11:43 |
|
> Jeg har et array fyldt med navne, og jeg ønsker at skabe objekter, som
> hedder disse navne. Hvordan gør jeg det??
Det kan du ikke umiddelbart, se tråden "Navngivning af et objekt" fra
29.11.2000.
Mvh Morten
--
Morten Primdahl Caput A/S Tel +45 70 12 24 42
morten@caput.com Nygade 6 Fax +45 70 11 24 42
http://www.caput.com/ DK-1164 Kbh K
| |
|
|