Другое событие 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));
}
Можно использовать CM_Request_Device_Eject () функция, а также некоторые другие возможности. Консультируйтесь со следующими проектами и статьями:
DevEject: Простой. http://www.withopf.com/tools/deveject/
А полезная статья CodeProject: http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx
Это похоже , Синхронизация позволяет Вам указать-e для извлечения съемных дисков. В то время как не win32 API, Вы могли, вероятно, просто звонить sync -e [drive_letter]
от Вашего make-файла.
Вот technet статья о съемных носителях. Ищите DismountNtmsMedia
.
Вот решение в Delphi, который я изменил и поместил в сервис для использования на очень крупном предприятии. Перейдите в: текст ссылки
Ищут "scapi (Установка & Сконфигурируйте менеджера API)", и загрузите его. Будет демонстрационная программа под названием USBView, который получит Вас на Вашем пути. Если у Вас есть Delphi, это также включает компонент TUSBDeviceTree, который можно использовать для сбора информации о USB-устройстве когда.
Отношения