• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

niezdefiniowana metoda println() dla typu Object

0 głosów
594 wizyt
pytanie zadane 28 maja 2024 w Java przez Marcinuq Użytkownik (690 p.)

Witam wszystkich!

Programuje w Java w Visual Studio Code.
Mam problem z tą linijką:

System.out.println("cos");

Wyświetla się błąd: The method println() is undefined for the type Object.
Wydaje mi się, że przypadkowo nadpisałem "out" i nie wiem jak to cofnąć.

komentarz 28 maja 2024 przez adrian17 Mentor (355,240 p.)
Pokażesz cały kod?
komentarz 28 maja 2024 przez Marcinuq Użytkownik (690 p.)

Nie wiem w czym to pomoże ale łap:

import java.util.ArrayList;
import java.util.List;

public class Sala {
    private int numer;
    private List <Skladnik> skladniki;
    public Sala(int numer){
        this.numer = numer;
        skladniki = new ArrayList<>();
    }
    public List<Skladnik> getSkladniki() {
        return skladniki;
    }
    public int getNumer() {
        return numer;
    }

    public void dodajSkladniki(int ilosc, String nazwa, String stan){
        for(int i = 0; i< ilosc; i++){
            skladniki.add(new Skladnik(nazwa, stan));
        }
    }
    public void usunSkladniki(int ilosc, String nazwa, String stan){

    }
    public void przeniesSkladniki(int ilosc, String nazwa, String stan, int numer){

    }
    public void przegladaj(){
        for(Skladnik skladnik : skladniki){
            System.out.println("xd");
        }
    }
}

 

1 odpowiedź

+1 głos
odpowiedź 28 maja 2024 przez Wiciorny Ekspert (283,500 p.)

Taka sytuacja ma tylko jeden przypadek. Nie uruchamiasz kodu w klasie, bądź metodzie statycznej klasy, albo innej która w procesie uruchomienia kodu Java, zostaje wywołana.  Próbujesz wywołać metodę println() na obiekcie, który nie jest instancją klasy System.out

Java to nie jest język skryptowy, więc kod jest kompilowany, nie interpretowany linia po lini jak np Pyhton, bo ten jest językiem interpretowanym, co oznacza, że kod jest wykonywany bezpośrednio przez interpreter bez potrzeby kompilacji
Java przez to, że nie charakteryzuje się " interaktywnością" nie może tak działać. 

Java ma to do siebie, że musi istnieć co najmniej jedna klasa- aby dany kod mógł zostać wykonany, nie jest wymagany obiekt, ale klasa i jakaś statyczna metoda uruchomieniowa. 

public class Main {
    public static void main(String[] args) {
        System.out.println("cos");
    }
}

 

komentarz 28 maja 2024 przez Marcinuq Użytkownik (690 p.)
W Main też mam taki błąd
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        The method println(String) is undefined for the type Object

        at Main.main(Main.java:3)
komentarz 29 maja 2024 przez Panelinio Stary wyjadacz (10,680 p.)
Spróbowałeś odpalić inny plik? W sensie stwórz w osobnym folderze plik Main.java i wklej to co Wiciorny Ci podał
1
komentarz 29 maja 2024 przez Marcinuq Użytkownik (690 p.)

Dobra, problem rozwiązany, mianowicie jedna klasa powodowała ten błąd, gdy przy korzystaniu z quick fixa dodała mi się taka linijka:

public static Object out;

I szczerze nie zauważyłem tego wcześniej, bo nie spodziewałem się, że ta linijka dodała się do jednej z klas, a klas sporo zrobiłem w projekcie.

Podobne pytania

0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 7 listopada 2016 w JavaScript przez marcin.1993 Początkujący (320 p.)
0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 21 lutego 2022 w Java przez matrasek15 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,428 wizyt
pytanie zadane 28 września 2018 w Java przez Kubs Mądrala (5,190 p.)

93,776 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,381 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...