abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 11:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.26.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Pozvánky

    Ve středu 29. dubna 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 7. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj i uživatelský prostor. Akce proběhne od 10:00 do večerních hodin. Hackday je určen všem zájemcům o praktickou práci s Linuxem na telefonech. Zaměří se na vývoj aplikací v userspace, například bankovní aplikace, zpracování obrazu z kamery nebo práci s NFC, i na úpravy

    … více »
    lkocman | Komentářů: 0
    včera 21:55 | Nová verze

    LilyPond (Wikipedie) , tj. multiplatformní svobodný software určený pro sazbu notových zápisů, byl vydán ve verzi 2.26.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | Nová verze

    Byla vydána nová verze 11.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 237 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Společnost SpaceX amerického miliardáře Elona Muska oznámila, že si zajistila opci buď na akvizici startupu Cursor za 60 miliard dolarů (přes 1,2 bilionu Kč) do konce letošního roku, nebo na zaplacení deseti miliard dolarů za nové partnerství s touto firmou zabývající se generováním kódů. SpaceX se dále prosazuje na lukrativním trhu s vývojářskými nástroji pro umělou inteligenci (AI). Cursor, startup zabývající se prodejem modelů AI pro

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 13:11 | Komunita

    Díky AI modelu Claude Mythos Preview od společnost Anthropic bylo ve Firefoxu nalezeno a opraveno 271 zranitelností.

    Ladislav Hagara | Komentářů: 5
    včera 04:44 | Nová verze

    Byla vydána nová verze 2.54.0 distribuovaného systému správy verzí Git. Přispělo 137 vývojářů, z toho 66 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 13.0. Přehled novinek v aktualizované dokumentaci a na YouTube. Stalo se tak na konferenci GrafanaCON 2026.

    Ladislav Hagara | Komentářů: 0
    21.4. 19:00 | IT novinky

    Na YouTube proběhl Framework [ Next Gen ] Event 2026. Společnost Framework představila nový Framework Laptop 13 Pro, vylepšení Framework Laptopu 16 a OCuLink Dev Kit pro připojení vysoce výkonných periferií jako jsou eGPU a bezdrátovou klávesnici s integrovaným touchpadem Framework Wireless Touchpad Keyboard.

    Ladislav Hagara | Komentářů: 0
    21.4. 18:22 | Nová verze

    Byl vydán Mozilla Firefox 150.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 150 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1392 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: java problém s voláním metody, static fields...

    4.5.2011 23:10 ttff
    java problém s voláním metody, static fields...
    Přečteno: 521×
    mám aplikaci, v appView píšu kód, pak mám vlastní třídu s metodou, jenž je static. Potřebuju z té static metody volat appView metodu, která sahá na jList.

    Problém je, že ať už mám v méTřídě jakoukoliv metodu nemohu z ní volat GUI prvky (jsou private), musím volat tu mou metodu v appView. Jenomže ať už je má metoda v méTřídě static nebo ne, píše mi to, že: non-static method máMetoda() cannot be referenced from a static context

    v C# jsem to řešil, že jsem ListBox udělal public. Co v Javě?

    Řešení dotazu:


    Odpovědi

    5.5.2011 01:27 Mips
    Rozbalit Rozbalit vše Re: java problém s voláním metody, static fields...
    Ten popis není zrovna nejsnazší k pochopení, ale myslím, že jsem pochopil, o co jde. Máte třídu AppView a v ní instanční proměnnou (field) nazvanou jList. Máte taky třídu MyClass a v ní metodu doSomethingWithJList(), pomocí které chcete manipulovat s oním fieldem jList:
    class AppView {
    
        private JList jList;
    
        public List<Object> getItems() {
            //má něco dělat s jListem, který je z ostatních tříd nepřístupný
        }
        
    }
    public class MyClass {
    
        public static void myMethod() {
            //odtud se má něco udělat s JListem ze třídy AppView
        }
    
    }

    A ono to nejde a nevíte, jak na to.

    On je totiž problém s tím statickým kontextem, jak píše chybová hláška.

    Začnu trochu zeširoka:
    Když chcete číst či zapisovat nestatický field, musíte specifikovat instanci třídy, jejíž field chcete číst či zapisovat. Tuto instanci specifikujete:

    • buď explicitně pomocí tečkové notace:
      referenceNaInstanci.názevFieldu
    • nebo, není-li reference na instanci specifikována, implicitně z kontextu, ve kterém se k tomuto fieldu snažíte přistoupit

    Přistupujete-li k fieldu z nestatické metody, znamená to, že sama tato nestatická metoda byla volána na nějaké instanci, jinak řečeno v kontextu nějaké instance.
    Přistupujete-li k fieldu ze statické metody, tato metoda není volána v kontextu žádné instance (neboli je volána ve statickém kontextu) a tudíž nemůže být implicitně dána instance třídy, k jejímuž nestatickému fieldu chcete přistoupit.

    Zpátky k vašemu příkladu:

    Field AppView.jList je instanční proměnná (field), tudíž, chcete-li k ní přistupovat, musí být specifikována instance třídy AppView. Jestliže k ní přistupujete bez tečkové notace z metody getItems(), pak se tato instance převezme z kontextu metody getItems(). Aby metoda getItems() měla nějaký nestatický kontext (a ona ho musí mít, protože je nestatická), musí se volat buď pomocí tečkové notace (instanceAppView.getItems()) nebo musí být volána z nestatického kontextu třídy AppView (tedy z nestatické metody třídy AppView či jejího potomka).

    Vy se ale zřejmě snažíte metodu getItems() volat způsobem, který žádnou instanci třídy AppView nespecifikuje.

    Tím, že metodu myMethod() uděláte nestatickou, si jen vynutíte, že tato metoda musí být volána v kontextu instance třídy MyClass. Ale vy potřebujete instanci třídy AppView.

    Řešení:
    Rozmyslete si, s jakou instancí třídy AppView chcete pracovat a kdy a jak ji vytvoříte. Jakmile budete tuto instanci mít, můžete ji specifikovat jako kontext pro metodu AppView.getItems(), potažmo pro field AppView.jList.

    5.5.2011 23:37 ttff
    Rozbalit Rozbalit vše Re: java problém s voláním metody, static fields...
    klobouk dolu a díky!
    5.5.2011 08:21 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: java problém s voláním metody, static fields...
    V tomhle vám pomůže jedině nastudovat si základy objektového programování. Pro Javu doporučuju Učebnice jazyka Java od Pavla Herouta.
    5.5.2011 09:59 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: java problém s voláním metody, static fields...
    Spíš základy designu aplikace.
    In Ada the typical infinite loop would normally be terminated by detonation.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.