webForumDet fria alternativet

importera mapp

Java

5 svar · 218 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Jag har ett program som jag börjar med att skriva följande:

import mapp1.*;

Filen som importerar mapp1 ligger i: c:\filer\
och i mappen filer ligger mapp1, mapp1 innehåller sedan ett par mappar till.
Detta ska väl fungera korrekt? :q

Medlem sedan juni 20008 205 inlägg
#2

Nej, du kan inte importera rekursivt. Med import mapp1.*; importerar du alla klasser i mapp1, men inga klasser i några underpaket (=undermappar) till mapp1.

Medlem sedan nov. 20022 355 inlägg
#3

Det finns inget finurligt sätt att skriva för att enkelt ta alla klasser i alla undermappar utan att behöva importera alla mappar som så här:

import mapp1.*;
import mapp1.mapp2.*;
import mapp1.mapp3.*;

?

Medlem sedan juni 20008 205 inlägg
#4

Nope. Du kan bara importera ett paket åt gången.

Medlem sedan nov. 20022 355 inlägg
#5

Skumt, om jag vill importera filer som finns i mapp2 så ska det väl då räcka med att jag skriver:

import mapp1.mapp2.mapp3.*;

Sedan kan jag använda de filerna i mapp3? (går inte för mig)
Får felmedelande här:
[kod]TaxClient.java:3: package mapp1.mapp2.mapp3 does not exist
import mapp1.mapp2.mapp3.*;

Medlem sedan sep. 2001961 inlägg
#6

1. Du importerar ALDRIG en klass. Det du gör är att du i din klass utökar klassens namnrymd (namespace). En klass känner annars alltid bara till sig själv och klasser som finns i samma paket som den själv.
2. Undvik att använda generella importer. Det är ok för t.ex. java.util.* och java.io.* men man bör annars skriva:
import mapp1.Klass1;
import mapp1.Klass2;
import mapp2.Klass3;

Detta för att dels undvika att man får fel när man vill ha just mapp2.Klass3 om det finns en mapp1.Klass3 också och dels för att det är tydligare för den som läser koden och dels för att det blir snabbare för kompilatorer och IDE'er om de slipper söka i alla klasser.

Så det så!!! ;-)

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)