Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Используйте элемент Каталога с идентификационным набором к AppDataFolder:
<Directory Id="AppDataFolder">
<Directory Id="MyAppFolder" Name="My">
<Component Id="MyComponent">
<File Source="Files\test1.txt" />
</Component>
</Directory>
</Directory>
Это приведет к test1.txt, устанавливаемому на C:\Users\username\AppData\Roaming\My в Windows 7 и на C:\Documents and Settings\username\Application Data\My on Windows XP.
MSDN имеет список свойств , что можно использовать для ссылки на специальные папки.