Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / перебор ключей properties / 6 сообщений из 6, страница 1 из 1
22.06.2012, 11:49:27
    #37849964
m.gisko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
Проглядел форум но не нашел для себя ответа на мой вопрос.
При переборе ключей properties и вставки значений в массив вылетает ошибка
Код: java
1.
2.
3.
4.
java.lang.NullPointerException
	at org.gisko.testProperties.getCatalogsFrom(testProperties.java:44)
	at org.gisko.testProperties.<init>(testProperties.java:27)
	at org.gisko.testProperties.main(testProperties.java:32)



вот код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
package org.gisko;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;

public class testProperties {

	public testProperties() throws Exception{
		
		// Определим файл настроек
		properties = new Properties();
		try{
			properties.load(new FileInputStream(FILE_OF_PROPERTIES));
		}catch(FileNotFoundException e){
			File newFileProperties = new File(FILE_OF_PROPERTIES);
			newFileProperties.createNewFile();
			System.out.println("The settings file is not found. Please change properties in the file: " + newFileProperties.getAbsolutePath());
			System.exit(0);
			
		}
		CATALOGS_FROM = getCatalogsFrom(properties.propertyNames());
	}
	
	public static void main(String[] args){
		try{
			testProperties prop = new testProperties();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	private ArrayList<File> getCatalogsFrom(Enumeration e){
		ArrayList<File> catalogsForExchange = null;
		while(e.hasMoreElements()){
			String key = (String) e.nextElement();
			if(key.substring(0, 7).equalsIgnoreCase("catalog")){
				System.out.println("key = " + key);
				catalogsForExchange.add(new File(properties.getProperty(key)));
			}
		}
		return catalogsForExchange;
	}
	
/*	private ArrayList<File> getCatalogsFrom(Set<String> s){
		ArrayList<File> catalogsForExchange = null;
		
		Iterator iter = s.iterator();
		
		while(iter.hasNext()){
			String key = (String) iter.next();
			System.out.println(key);
			File ff = new File(properties.getProperty(key));
			System.out.println(ff);
			catalogsForExchange.add(ff);
		}
		return catalogsForExchange;
	}
*/
	
	private ArrayList<File> CATALOGS_FROM;
	private Properties properties;
	private static final String FILE_OF_PROPERTIES = "settings.properties";
}



ошибка вылетает когда я получаю ключ в цикле и пытюсь его значение засунуть в массив.
подскажите что не так делаю? Мож есть другие варианты перебора ключей или мож чет интерестное происходить с arryaList в этом случае?
...
Рейтинг: 0 / 0
22.06.2012, 11:53:14
    #37849977
m.gisko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
Извиняюсь - не знаю как пронумеровать строки, разве что вручную
...
Рейтинг: 0 / 0
22.06.2012, 11:54:45
    #37849984
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
Приучайтесь пользоваться дебаггеом:
Код: java
1.
ArrayList<File> catalogsForExchange = null;
...
Рейтинг: 0 / 0
22.06.2012, 12:01:18
    #37850006
m.gisko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
svenomПриучайтесь пользоваться дебаггеом:
Код: java
1.
ArrayList<File> catalogsForExchange = null;


спс, однкаго не помогло...я так понимаю тут даже не то что добавление элемента в массив, а создание самого элемента из начения properties
...
Рейтинг: 0 / 0
22.06.2012, 12:05:56
    #37850019
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
Тебе же говорят

Код: java
1.
ArrayList<File> catalogsForExchange = null;



это объект, значит надо его инициализировать (вызов оператора new)
...
Рейтинг: 0 / 0
22.06.2012, 12:11:29
    #37850027
m.gisko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перебор ключей properties
вот блин, точно...а я просто не инициализировал...спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / перебор ключей properties / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]