Другое событие 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));
}
Вам не придется проанализировать ICS только для импорта его в Google Calendar, это способно к импорту их непосредственно... От веб-представления конечного пользователя это столь же легко как нажатие на Import Calendar. От API я посмотрел бы раздел Adding New Subscriptions .
For my iCal2GCal app I'm using the Googlecalendar Ruby Gem to both parse .ics files and then add the events inside to a Googlecalendar. It might give you some ideas on how to go about it. You can check out the full source code.
Для этого я создал простую утилиту .net с открытым исходным кодом, доступную по адресу http://gcalicsimporter.codeplex.com/ .