В Java все переменные, которые вы объявляете, на самом деле являются «ссылками» на объекты (или примитивы), а не самими объектами.
При попытке выполнить один метод объекта , ссылка просит живой объект выполнить этот метод. Но если ссылка ссылается на NULL (ничего, нуль, void, nada), то нет способа, которым метод будет выполнен. Тогда runtime сообщит вам об этом, выбросив исключение NullPointerException.
Ваша ссылка «указывает» на нуль, таким образом, «Null -> Pointer».
Объект живет в памяти виртуальной машины пространство и единственный способ доступа к нему - использовать ссылки this
. Возьмем этот пример:
public class Some {
private int id;
public int getId(){
return this.id;
}
public setId( int newId ) {
this.id = newId;
}
}
И в другом месте вашего кода:
Some reference = new Some(); // Point to a new object of type Some()
Some otherReference = null; // Initiallly this points to NULL
reference.setId( 1 ); // Execute setId method, now private var id is 1
System.out.println( reference.getId() ); // Prints 1 to the console
otherReference = reference // Now they both point to the only object.
reference = null; // "reference" now point to null.
// But "otherReference" still point to the "real" object so this print 1 too...
System.out.println( otherReference.getId() );
// Guess what will happen
System.out.println( reference.getId() ); // :S Throws NullPointerException because "reference" is pointing to NULL remember...
Это важно знать - когда больше нет ссылок на объект (в пример выше, когда reference
и otherReference
оба указывают на null), тогда объект «недоступен». Мы не можем работать с ним, поэтому этот объект готов к сбору мусора, и в какой-то момент VM освободит память, используемую этим объектом, и выделит другую.
Там isn’t простой способ управлять форматированием Excel применяется при открытии .csv файла. Однако упомянутый ниже три подхода, которые могли бы помочь.
Мое предпочтение является правом преимущественной покупки.
Опция 1 †“Изменение данные в файле
Вы могли изменить данные в .csv файле следующим образом..., =”005”... Это будет отображено в Excel как..., 005 ...
Excel сохранит данные как формулу, но копирование столбца и использование вставки специальные значения избавятся от формулы, но сохранят форматирование
Опция 2 †“Формат данные
, Если это будет просто проблема формата, и все Ваши данные в том столбце имеют три длины цифр. Тогда откройте данные в Excel и затем отформатируйте столбец, содержащий данные с этим пользовательским форматом 000
Опция 3 †“Изменение расширение файла к .dif (Формат обмена данными)
Изменение расширение файла, и используйте мастер импорта файла для управления форматами. Файлы с .dif расширением автоматически открыты Excel, когда дважды щелкнуто на.
Шаг за шагом:
При открытии CSV Вы получаете текстовый мастер импорта. На последнем шаге мастера необходимо быть в состоянии импортировать определенный столбец как текст, таким образом, сохраняя '00' префикс. После этого можно тогда отформатировать ячейку любой способ, которым Вы хотите.
я попробовал с Excel 2007, и это, казалось, работало.
На самом деле я обнаружил, что, по крайней мере, стартовый с Office 2003, можно сохранить электронную таблицу Excel как XML-файл. Таким образом я могу произвести XML-файл и когда я дважды щелкну по нему, он будет открыт в Excel. Это обеспечивает тот же уровень управления как SYLK, но синтаксис XML более интуитивен.
Можно просто отформатировать диапазон как текст.
Также здесь хорошая статья о числовых форматах и как можно программировать их.
Не используйте CSV, используйте SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_ (SYLK)
Это дает намного больше контроля форматированием, и Excel не попытается предположить тип поля путем исследования содержания. Это выглядит немного сложным, но можно сойти с рук использование очень маленького подмножества.
Я верю, когда Вы импортируете файл, можно выбрать Тип столбца. Сделайте его текстом вместо Числа. У меня нет копии передо мной в данный момент для проверки все же.
Well, excel never pops up the wizard for CSV files. If you rename it to .txt, you'll see the wizard when you do a File>Open in Excel the next time.
Загрузить csv в oleDB и преобразовать все предполагаемые типы данных в строку
Я задал тот же вопрос, а затем ответил на него кодом.
в основном, когда файл csv загружен, драйвер oledb делает предположений, вы можете сказать, какие предположения делать.
Мой код заставляет все типы данных быть строковыми, хотя ... схему очень легко изменить. для своих целей я использовал xslt, чтобы получить то, что я хотел, но я анализирую большое количество файлов.
Поставьте одинарную кавычку перед полем. Excel будет рассматривать его как текст, даже если оно выглядит как число.
...,`005,...
EDIT: Это неверно. Трюк с апострофом работает только при вводе данных непосредственно в Excel. Когда вы используете его в CSV-файле, апостроф появляется в поле, чего вы не хотите.