Другое событие 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));
}
Метод 2 показывает фактическую версию x509, в то время как метод 1 показывает версию x509, основанную на нуле, где 0 = v1, 1 = v2, 2 = v3. Таким образом, на практике они оба показывают, что используется версия 3. Вы можете попробовать это самостоятельно, используя openssl x509 -text -in YOURCERT.pem
, и вы получите что-то вроде
Certificate:
Data:
Version: 3 (0x2)
, и вы можете увидеть, что версия 3 дана, но также в скобках шестнадцатеричное значение (2), которое основано на нулевой версии. Вопрос в том, какие из ваших библиотек используют какой метод