Avatar billede shadowdance Nybegynder
08. september 2004 - 01:08 Der er 9 kommentarer og
1 løsning

Cannot be referenced from a static context

Her er min kode:

import java.io.*;

public class FileHandler
{
    public static void main(String[] args)
    {
        String filepath = "c:\\fors.txt";

        File reffile = new File(filepath);

        FileWriter txtfile = new FileWriter(reffile);

        FileWriter.write("Hello, world!");
    }
}

Og her er fejlmeddelelsen:

D:\Dokumenter\Kode\Java\FileHandler.java:13: non-static method write(java.lang.String) cannot be referenced from a static context
        FileWriter.write("Hello, world!");
                      ^

Jeg har før fået den fejlmeddelelse - den giver jo ingen mening. Hvad betyder den?
Avatar billede viciodk Praktikant
08. september 2004 - 01:38 #1
Se her hvordan du skriver til en tekstfil
http://javabog.dk/OOP/kapitel15.html
Avatar billede Slettet bruger
08. september 2004 - 08:19 #2
prøv følgende i stedet for

import java.io.*;

public class FileHandler
{
    public static void main(String[] args) throws IOException
    {
        String filepath = "c:\\fors.txt";

        File reffile = new File(filepath);

        FileWriter txtfile = new FileWriter(reffile);

        txtfile.write("Hello, world!");
    }
}
Avatar billede viciodk Praktikant
08. september 2004 - 21:54 #3
Den kode prøvede testede jeg også. Filen bliver da også oprettet, men "Hello, World!" bliver ikke gemt i den.
Avatar billede arne_v Ekspert
08. september 2004 - 22:01 #4
Men det gør:

import java.io.*;

public class X
{
    public static void main(String[] args) throws IOException
    {
        String filepath = "c:\\fors.txt";

        File reffile = new File(filepath);

        FileWriter txtfile = new FileWriter(reffile);

        txtfile.write("Hello, world!\r\n");

        txtfile.close();
    }
}
Avatar billede arne_v Ekspert
08. september 2004 - 22:11 #5
Men følgende er nok pænere:

import java.io.*;

public class Y
{
    public static void main(String[] args) throws IOException
    {
        PrintWriter txtfile = new PrintWriter(new FileWriter("c:\\fors.txt"));
        txtfile.println("Hello, world!");
        txtfile.close();
    }
}
Avatar billede shadowdance Nybegynder
09. september 2004 - 11:14 #6
Men hvad går denne fejlmeddelelse ud på? I kernen skulle den jo betyde, at man ikke kan kalde en metode, der ikke er statisk, fra en statisk kontekst. Men det betyder jo så, at man ikke kan kalde andet end statiske metoder!

Der var en, der nævnte i et andet spørgsmål, at det er fordi det er en "instance method". Og hvad er det lige, det betyder?
Avatar billede arne_v Ekspert
10. september 2004 - 22:30 #7
Du skal lave en instans for at kalde en instans metode !
Avatar billede arne_v Ekspert
10. september 2004 - 22:31 #8
FileWriter.write("Hello, world!");

duer ikke men det gør

txtfile.write("Hello, world!");

da txtfile er en instans
Avatar billede arne_v Ekspert
10. september 2004 - 22:31 #9
og et svar fra mig også
Avatar billede arne_v Ekspert
19. september 2004 - 19:17 #10
OK ?
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