Другое событие 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));
}
Я лично использую немного сценарий Автогорячей клавиши , чтобы повторно отобразить определенные функции клавиатуры, для консоли (CMD) я использую:
; Redefine only when the active window is a console window
#IfWinActive ahk_class ConsoleWindowClass
; Close Command Window with Ctrl+w
$^w::
WinGetTitle sTitle
If (InStr(sTitle, "-")=0) {
Send EXIT{Enter}
} else {
Send ^w
}
return
; Ctrl+up / Down to scroll command window back and forward
^Up::
Send {WheelUp}
return
^Down::
Send {WheelDown}
return
; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !{Space}ep
return
#IfWinActive
Вы могли попытаться использовать Texter и создать что-то вряд ли как:
./p, инициированный пространством и заменой текста с %c
, я просто протестировал его, и это хорошо работает. Единственный глюк должен использовать редкую последовательность, поскольку Texter не может ограничить это просто cmd.
существуют, вероятно, другие утилиты этого вида, который мог работать, и даже Автогорячая клавиша , на которой создается Texter, могла сделать это лучше, но Texter является легким:-)
Это не действительно ярлык, но просто быстрый доступ к системному меню: Alt-space E P
, Если можно использовать мышь, щелкает правой кнопкой по cmd работам окна как вставка, когда я попробовал его.
Едва ли программируя связанный, но я нашел это на Google, нет прямого сочетания клавиш , но делает его немного более быстрым.
Да.. но неловкий. Ссылка
высокий звук + Пространство , e , k < - для копии и
высокий звук + Пространство , e , p < - для вставки.
Спасибо, Пабло, именно то, что я искал! Однако, если я позволю себе немного улучшить ваш скрипт, я предлагаю заменить ваш макрос ^ V следующим:
; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \
; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return
Преимущество использования SendInput состоит в том, что
Обратите внимание: важно включить "{Raw}" в команду SendInput, если в буфере обмена есть "!", "+", "^" Или "#".
Обратите внимание, что он использует StringReplace для удаления лишних символов возврата каретки Windows. Спасибо hugov за это предложение!
Спасибо, Пабло, за ссылку на утилиту AutoHotkey. Поскольку у меня установлен Launchy, использующий Alt + Пробел , мне пришлось изменить его, но добавить клавишу Shift , как показано:
; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !+{Space}ep
return
Более простой способ - использовать Windows PowerShell вместо cmd. с текстер отлично работает.