Avatar billede conrad Nybegynder
12. september 2002 - 20:56 Der 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?
Avatar billede soreno Praktikant
12. september 2002 - 21:00 #1
eks:
java.util.Vector vect = new java.util.Vector();

brug samme fremgangsmåde at instantiere dine objekter på, eks:

min.pakke.Node n = new min.pakke.Node();
min.anden.pakke.Node n = new min.anden.pakke.Node();

så er der ingen tvivl om hvilke metoder der hører til hvilke klasser.
Avatar billede conrad Nybegynder
12. september 2002 - 21:06 #2
Hvad hvis ingen af dem er pakket i en package?
Avatar billede soreno Praktikant
12. september 2002 - 21:08 #3
ehhh, hvordan ligger de så ??
eks:
c:\java\hello\Node.java
og
c:\java\hello\structure\Node.java

eller hvad ?
Avatar billede disky Nybegynder
12. september 2002 - 21:13 #4
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.
Avatar billede soreno Praktikant
12. september 2002 - 21:20 #5
disky>>
hvorfor så ikke:
java.util.Collection vect = new java.util.Vector();
??
Avatar billede disky Nybegynder
12. september 2002 - 21:26 #6
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.
Avatar billede soreno Praktikant
12. september 2002 - 21:35 #7
Avatar billede disky Nybegynder
12. september 2002 - 21:42 #8
Den første.

Jeg ved udemærket emacs kan det, men hvis man arbejder med STORE projekter, er det træls at skulle rette i mange filer.

Og det andet er den objektorienterede korrekte måde at gøre tingene på, det er jo en af grundene til interfaces er så geniale.
Avatar billede soreno Praktikant
12. september 2002 - 21:55 #9
ok, bogen er hermed tilføjet ønskeseddlen til jul - tak for tippet, det er jo altid sundt at udvide sin horisont med godt læsestof :-)
Avatar billede disky Nybegynder
12. september 2002 - 22:13 #10
det glæder mig.

kig evt her:
http://www.disky.dk/books.htm

Taming Java Threads er også et must hvis man skal lave noget multitrådet.
Avatar billede conrad Nybegynder
20. september 2002 - 12:24 #11
jeg takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester