Dodawanie enuma do ArrayList

0

Zanim to przeczytasz, problem jest prosty do rozwiązania zapewne, jakaś totalna głupota(nie algorytmiczna ale ze specyfikacji javy), więc nie bój się czytać tego tekstu. Pomóż proszę:)

Witam! Mam dużo małych problemów z duuuuuużym programem, generalnie to moment przełomowy.
Bardzo proszę o pomoc, muszę posunąć się jakoś do przodu.
Mam enumka:

public enum Niebezpieczeństwa {
	przepascie,
	ekspozycja,
	stromizny,
	niedzwiedzie
}

Oraz pewną wyszukiwarkę, która wysupłuje z pliku tekstowego dane do konstruktora ścieżki łączącej dwa punkty, problem polega na tym że dostaję błąd:

Exception in thread "main" java.lang.NullPointerException
	at Ścieżka.<init>(Ścieżka.java:31)
	at Wyszukiwarka.Formater2(Wyszukiwarka.java:258)
	at Wyszukiwarka.wczytaj(Wyszukiwarka.java:47)
	at Wyszukiwarka.main(Wyszukiwarka.java:272)

Kondracka Przelecz;Giewont;650;30';170;2;niebieski;ekspozycja, stromizny;lancuchy
to jest linijka na wejście ekspozycja i stromizny to niebezpieczństwa. Wyszukiwarka przekazuje je do konstruktora śćieżki jako ArrayList<String>, natomiast ścieżka ma atrybut ArrayList<Niebezpieczeństwo>.
Ażeby to pprzyporządkować używam:
Enum.valueOf(Niebezpieczeństwa.class, niebezpieczeństwa.get(i))
Polecenie działało, dopóki nie zacząłem używać ArrayList<Niebezpieczeństwo>(założyłem że może być tylko jedno niebezpieczeńswo więc miałem tylko jedno w klasie, ale jak widzimy naraz występuje ekspozycja i stromizny)
Tutaj kod klasy ścieżka:

UWAGA(MYŚLĘ ŻE W TYM LEŻY PROBLEM): n które wkładamy do ArrayList gdy wypisuję = ekspozycja-więc nie jest puste, natomiast nie moge go dodać do listy bo wyskakuje ten błąd. Nie umiem używać EnumMap, a termin mnie goni, proszę baardzo o pomoc! Możliwośc dodania instancji enuma do ArrayList rozwiązałaby sprawę, w ogóle nie rozumiem, dlaczego operacja zwraca wyjątek..

import java.sql.Time;
import java.util.ArrayList;
import java.util.EnumMap;
public class Ścieżka {
	String początek;
	String koniec;
	int odległość;
	Time czas; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	int przewyższenie;
	int poziomtrudności;
	String kolor;
     TU	Niebezpieczeństwa n;
  I  TU       ArrayList<Niebezpieczeństwa> niebezpieczeństwa;
	ArrayList<Zabezpieczenia> zabezpieczenia;

	Ścieżka(String początek, String koniec, int odległość, String
czas, int przewyższenie, int poziomtrudności, String kolor, ArrayList<String>
niebezpieczeństwa, ArrayList<String> zabezpieczenia){
	this.początek = początek;
	this.koniec = koniec;
	this.odległość = odległość;
	this.czas = UstawCzas(czas);
	this.przewyższenie = przewyższenie;
	this.poziomtrudności = poziomtrudności;
	this.kolor = kolor;
	ODTĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄD
               <b>for(int i = 0; i < niebezpieczeństwa.size()-1; i++){   //PAMIĘTAJ ZABRAĆ JEDYNKĘ
		System.out.println(niebezpieczeństwa+"	"+i);
	if(!niebezpieczeństwa.get(i).equals("")){
	n = Enum.valueOf(Niebezpieczeństwa.class, niebezpieczeństwa.get(i));
	System.out.println(n);
	this.niebezpieczeństwa.add(n);}
	}</b>/*	for(int i  = 0 ; i < zabezpieczenia.size(); i++){
	if(!zabezpieczenia.get(i).equals("") && zabezpieczenia.get(i).length()!=1 ){
	this.zabezpieczenia.add(Enum.valueOf(Zabezpieczenia.class, zabezpieczenia.get(i)));}
	} */
                DOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOTĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄD
// Enum.valueOf(Zabezpieczenia.class, zabezpieczenia);
	
	
	
	}
	public static Time UstawCzas(String czas){
		Time d = new Time(1,2,3);
		return d;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

Dla wyjaśnienia, pozostałe składowe ścieżki oprócz nieszczęsnych enumów, zostały już wysupłane, wstawione.

0

Gdzie masz inicjalizację??? To nie C!!!!

ArrayList<Niebezpieczeństwa> niebezpieczeństwa;
ArrayList<Zabezpieczenia> zabezpieczenia;

Napisz tak:

ArrayList<Niebezpieczeństwa> niebezpieczeństwa = new ArrayList<Niebezpieczeństwa>();
ArrayList<Zabezpieczenia> zabezpieczenia = new ArrayList<Zabezpieczenia>();</quote>

0

Jej, idotyzm, tak to jest jak się programuje przez 16 godzin. Dziękuje!:)

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