12. september 2002 - 20:56Der er
9 kommentarer og 2 løsninger
to klasser med samme navn
fra en jar som er i min classpath fil benytter jeg bl.a en klasse Node. I de filer jeg retter/skriver i findes også en Node klasse.
Kompileren klager over at den ikke kan finde metoder i Node klassen fra jar filen. Dette må betyde den leder (vel meget naturligt) i den Node klasse jeg retter i.
Hvad gør man i sådan et tilfælde? Filerne i fra jar filen kan jeg ikke rette i - skal jeg virkelig til at rename i alle de andre filer?
Soreno: java.util.Vector vect = new java.util.Vector(); er dårlig kotume !
man definerer altid typen af interfacet, for lettere at kunne skifte type hvis det er nødvendigt, altså: java.util.List vect = new java.util.Vector();
At angive full package navn hvergang er en dårlig ide, tværtimod skal man bruge en bedre navngivning af sine klasser, så man ikke har to der hedder det samme.
Fordi Collection er for generisk, man kan ikke altid skifte en ArrayList ud med en HashMap, derfor 'List' eller 'Map' osv. Det er sådanne små ting man lærer når man bliver træt af at ændre sin kode 418 steder fordi man bliver nød til at gå fra Vector til ArrayList osv, ved min metode skal man KUB ændre i 'new' statementet.
Forresten brug normalt altid ArrayList istedet for Vector den performer bedre.
p.s. Læs bogen 'Effective Java Programming' der står en masse gode tips i. James Gosling har udtalt at den bog ville han gerne have haft da han lavede Java.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.