我有一個靜態的使用方法,我打電話與一些值爲空。Nullpointer例外與可空參數的方法
這裏是我打電話的方法簽名:
public static void logAndDisplayError(@Nullable Shell parentShell, String dialogTitle, String exceptionMessage, @Nullable Exception e, @Nullable Integer statusCode, boolean is1CD)
這裏是調用方法:
EclipseError.logAndDisplayError(getShell(), "Error Occured On Finish", message, null, null, true);
裏面的方法,我想提出一個MessageDialog這是造成空指針。
這裏是MessageDialog創建:
MessageDialog dialog = new MessageDialog(parentShell,
dialogTitle,
MessageDialog.getImage(Dialog.DLG_IMG_MESSAGE_ERROR),
getErrorMessage(e.getMessage(), e, statusCode),
MessageDialog.ERROR,
new String[]{"1CD Help", "Ok"},
1);
空指針是在此呼叫在MessageDialog存在的:
getErrorMessage(e.getMessage(), e, statusCode)
所以我們知道,e和的StatusCode爲空。但我在getErrorMessage方法中定義了Nullable ...
private static String getErrorMessage(String exceptionMessage, @Nullable Exception e, @Nullable Integer statusCode)
爲什麼它會拋出空指針?
而且,這裏是我使用的@Nullable:
org.eclipse.jdt.annotation.Nullable
'e.getMessage()'如果'e'爲'null',將NPE。 – khelwood
@khelwood oh duhhh我打算從方法參數 –