Другое событие 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));
}
Я написал свою собственную библиотеку C ++. Это доступно на sourceforge: xmlrpcc4win
Причина, по которой я написал ее вместо использования библиотеки Криса Морли, заключалась в том, что:
Пока я не записал свою собственную библиотеку, (см. выше), здесь был мой ответ:
В настоящее время библиотека XmlRpc ++ Chris Morley является единственной реализацией/LPGL XmlRpc общественного достояния для C++ в Windows.
Существует несколько реализаций C++ для Linux, любая из которых могла быть, по-видимому, легко портирована к Windows, но факт, кажется, что никто еще не сделал так и сделал его общедоступным. Кроме того, как eczamy говорит, "Спецификация XML-RPC несколько проста, и не было бы трудно реализовать Ваш собственный клиент XML-RPC".
Я пользуюсь библиотекой Chris Morley успешно, несмотря на то, что имел, чтобы найти и зафиксировать множество ошибок. Форум Справки для этого проекта, кажется, несколько активен, но никто не исправил эти ошибки и сделал новый выпуск. Я был в корреспонденции Chris Morley, и у него есть неопределенные надежды сделать новый выпуск, и он способствовал этому stackOverflow вопросу (см. ниже/выше), и он утверждает, что исправил большинство ошибок, но до сих пор он не сделал выпуск, который исправляет много ошибок. Последний выпуск был в 2003.
Неутешительно мне, что воображаемое широко поддерживало (и простой!) протокол имеет такую плохую поддержку в Windows + C++. Может кто-то читающий эту страницу берет маркер и например, поглощает XmlRpc ++ или правильно портирует одну из реализаций Linux.
Существуют десятки реализаций реализаций XML-RPC, некоторых в C++, но большинства на других языках. Например, помимо XmlRpc ++ существует также XML-RPC для C и C++. Вот ПРАКТИЧЕСКОЕ РУКОВОДСТВО о том, как XML-RPC для C и библиотеки C++ может использоваться.
Спецификация XML-RPC несколько проста, и не было бы трудно реализовать Ваш собственный клиент XML-RPC. Не говоря уже о, также было бы возможно взять существующую реализацию XML-RPC в C и принести в Ваш проект C++.
Домашняя страница XML-RPC также предоставляет большую полезную информацию.
Просто требуемый для замечания нескольких объектов:
Источник в cvs репозитории для XmlRpc ++ имеет поддержку OpenSSL (хотя я не попробовал его, это было внесено другим разработчиком).
Большинство ошибок, о которых сообщают, исправлено в cvs; у меня нет доступа к машине Linux в данный момент, таким образом, я не сделал официальный выпуск.
XmlRpc ++ не является общественным достоянием. Это защищается авторским правом и лицензируется (LGPL).
Спасибо, Chris Morley