Avatar billede johanls Nybegynder
31. august 2001 - 22:19 Der er 17 kommentarer og
1 løsning

To klasser i en package, hvor den ene kalder metode fra en anden!

Hvordan kan det være at compileren ikke kan kende en funktion fra en anden klasse i samme package?
Funktionen invokes således:
klassenavn.funktionsnavn();
Der kommer en meddelse:
cannot resolve symbol
klassenavn

Jeg har været meget omhyggelig at bruge samme navn.
Avatar billede jakoba Nybegynder
31. august 2001 - 22:40 #1
og begge klasser ligger i en mappe ved navn >klassens_navn<
og begge klasser indeholder linien
  package >klassens_navn<
og den anden klasse er allerede kompileret ?
og du bruger samme store og små bogstaver i funktionens navn
og i >klassens_navn<
Avatar billede jakoba Nybegynder
31. august 2001 - 22:42 #2
Ups. der skal ; efter linien:
  package >klassens_navn<;
Avatar billede jakoba Nybegynder
31. august 2001 - 22:43 #3
PS hvis du bruger Kava er det ikke nok at oprette en \'kava-mappe\' til klassen, den skal eksistere i windows før den duer til noget.
Avatar billede johanls Nybegynder
31. august 2001 - 22:47 #4
Hejsa JakobA,
det skal lige siges at det handler om servlets i en pakke det glemte jeg lige, men ellers har jeg gjort alt det du siger!!
Avatar billede johanls Nybegynder
31. august 2001 - 22:57 #5
Lidt forenklet ser det således ud:
***********************************************
package coreservlets;

import javax.servlet.*;
import javax.servlet.http.*;

public class ServletUtilities
{
  public static  final String docType=\"tekst\";
  public static String headWithTitle(String title){
        return(docType + title);
    }
}
^*********************************************
package coreservlets;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWWW extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType(\"text/html\");
    PrintWriter out = response.getWriter();
    out.println(ServletUtilities.headWithTitle(\"Hello WWW\");
  }
}
*************************************
Compileren kan ikke kende ServletUtilities, og hvis jeg udkommenterer linjen compilerer den fint!
Avatar billede jakoba Nybegynder
31. august 2001 - 22:59 #6
Kunne det være det med at funktionen skal være static før den kan kaldes generisk (altså med klassenavn.funktionsnavn(...) )
normalt skal man lave en instans af klassen først:
  klassenavn klvar = new klassenavn(...);
  klvar.funktionsnavn(...);
Avatar billede jakoba Nybegynder
31. august 2001 - 23:01 #7
Næ det er den jo. sorry
Avatar billede jakoba Nybegynder
31. august 2001 - 23:07 #8
Har du prøvet at lægge kildeteksten til begge klasser i samme fil?
Avatar billede jakoba Nybegynder
31. august 2001 - 23:08 #9
Peger din CLASSPATH på den mappe pakkemappen ligger i
Avatar billede johanls Nybegynder
31. august 2001 - 23:12 #10
Det med Classpath kan være løsningen!! Jeg bruger Tomcat hvis det fortæller dig noget!
Avatar billede jakoba Nybegynder
31. august 2001 - 23:12 #11
for at bruge en pakke skal man normalt importere den:
  import coreservlets.*;

Men her skal det måske det snarere skal være
  import coreservlets.ServletUtilities;
Avatar billede jakoba Nybegynder
31. august 2001 - 23:14 #12
Tomcat aner jeg intet om :(
Avatar billede johanls Nybegynder
31. august 2001 - 23:15 #13
Ok jeg har fundet noget i min bog der kan hjålpe mig du får alligevel dine points for hjælpsomheden!!
Avatar billede jakoba Nybegynder
31. august 2001 - 23:16 #14
Fortæl hellere hvad det var og behold points :-))
Avatar billede johanls Nybegynder
31. august 2001 - 23:16 #15
Hvis du altså sender et dummysvar!!
Avatar billede johanls Nybegynder
31. august 2001 - 23:17 #16
Ok det vil jeg gøre skal lige prøve mig frem lidt mere!!
Avatar billede johanls Nybegynder
31. august 2001 - 23:24 #17
Her er løsningen:

set classpath=c:\\webdev;%classpath%

hæhæhæ jeg er ikke alt for klog!!
Avatar billede jakoba Nybegynder
31. august 2001 - 23:46 #18
Du er ikke alene. tidligere idag brugte jeg ca en time på at hitte ud af at lenght skulle staves length :-))
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