Odwolanie sie do elementow innej klasy

0

czesc, mecze sie nad odwolaniem elentow jednej klasy do drugiej. Wyglada to mniej wiecej tak:

public void Wczytaj(){
        try{
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        InputStream inputStream = read();
        XMLEventReader eventReader = inputFactory.createXMLEventReader(inputStream);
    }catch (XMLStreamException e){
            throw new RuntimeException();
        }
    }
public Zawartosc ustawZawartosc(){

}

Chcialbym w ustawZawartosc odwołać się do eventReader. Dwoje sie i troje i do rozwiazania dojsc nie moge.

0

Klasy czy metody? o_O Niech eventReader będzie polem klasy albo niech ta metoda Wczytaj go zwraca po prostu. To zależy co próbujesz zrobić.

0

pfu, metody*.
Chciałem rozbić sobie jedną dłuugą metodę na kilka innych. Pisze taki mały, prosty czytnik rss.

0

No to niech ta metoda wydzielona (która powinna być pewnie prywatna!) ZWRACA obiekt którego potrzebujesz po prostu.

Pytanie tylko czemu programujesz lodówką, bo np. IntelliJ przy automatyczym extract method sam by ci zaproponował sygnaturę nowej metody i zrobił tak żeby się dobrze wydzieliła nowa metoda...

0

próbowałem tak zrobić, tzn utworzyć metodę która będzie zwracała eventReader, ale w późniejszym kodzie to jakoś nie za bardzo działa. Kiedy potem zamieniłem

case TITLE:
title = getCharacterData(event, eventReader);

na:

case TITLE:
title = getCharacterData(event, Wczytaj);

to kompilator wyrzucił bodajże NullPointerException.

No właśnie kurcze Ja siedzę w Inteliij:D

0

Bzdura, to drugie by sie nawet nie skompilowało. Musiałbyś mieć tam title = getCharacterData(event, Wczytaj()); jeśli już, ale ta metoda musiałaby też coś zwracać!

0

Swoja droga to jak dziala wczytywanie eventow przez czytnik? To jest tak, ze strona pobiera się w jakiejś kolejności? Czy jakoś dostosowuje się do tego co jest w kodzie? Jak to się dzieje, że gdziekolwiek nie wstawie mój static final String OPIS = "description"; w tym miejscu:

 switch (localPart) {
                        case ITEM:
                            if (isFeedHeader) {
                                isFeedHeader = false;
                                feed = new Feed(title, link, description, language, copyright, pubDate);
                            }
                            event = eventReader.nextEvent();
                            break;
                        case OPIS:
                            title = getCharacterData(event, eventReader);
                            break;
                        case TITLE:
                            description = getCharacterData(event, eventReader);
                            break;
                        case LINK:
                            link = getCharacterData(event, eventReader);
                            break;

To zawsze będzie się pod tym krył faktycznie opis?

0

Dobra, odkrylem co , jak i dlaczego w takiej kolejnosci sie zapisuje. Ale w jakiej kolejnosci Event pobiera dane ze strony to nadal nie wiem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1