Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Одна возможность:
String imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";
- это возможность (при совпадении без учета регистра). Это немного беспорядок и намеренно игнорирует случай, когда кавычки не используются. Чтобы представить его, не беспокоясь о побегах строк:
<img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>
Это соответствует:
>
(т.е. возможные другие атрибуты) src
=
'
или "
>
(другие возможные атрибуты) > aspx
Существует много фрагментов кода в рамках Visual Studio для основной структуры программирования, но я не обязательно оценил бы один выше, чем другой.
Я определенно сказал бы, что лучшие являются пользовательскими отрывками, которые Вы определяете сами для выполнения более определенных задач, которые можно использовать регулярно. Определенно средство сохранения достижения.
Довольно основное введение к созданию пользовательских отрывков, как могут находить, по http://www.15seconds.com/issue/080724.htm помогает с этим.
Они - те, я ежедневно использую.
Я только что завел блог, где документирую короткие решения на C # (фрагменты кода), которые я придумал и которые могут оказаться полезными для других программистов.
http: //thorstenlorenz.blogspot .com /
Пока что я в основном веду блог о методах расширений и дженериках.
Так что посмотрите и скажите мне, что вы думаете.
В моем старом блоге было несколько:
У меня также есть argnull
фрагмент кода, который вставляет условие защиты, которое проверяет аргумент на нуль и выдает исключение ArgumentNullException, но я еще не успел опубликовать это.
Просто чтобы обновить старую ветку ... вот ссылка для загрузки фрагмента кода C # Visual Studio 2008.