Java SWT文本未处理的事件循环异常:NullPointerException

Java SWT文本未处理的事件循环异常:NullPointerException,java,eclipse,eclipse-plugin,swt,Java,Eclipse,Eclipse Plugin,Swt,我已经为一个插件编写了代码,其中有一个文本字段,我必须使用ModifyListener()对其进行验证 无论何时运行应用程序,都会出现以下错误 !ENTRY org.eclipse.ui 4 0 2017-12-05 12:06:29.140 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException at com.aspire.plugin.angularator.views.MainW

我已经为一个插件编写了代码,其中有一个文本字段,我必须使用ModifyListener()对其进行验证

无论何时运行应用程序,都会出现以下错误

!ENTRY org.eclipse.ui 4 0 2017-12-05 12:06:29.140
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
    at com.aspire.plugin.angularator.views.MainWizardPage$1.modifyText(MainWizardPage.java:78)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:180)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084)
    at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:3122)
    at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4947)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4802)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5123)
    at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
    at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2446)
    at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:262)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4897)
    at org.eclipse.swt.widgets.Text.windowProc(Text.java:2704)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5110)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2552)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3822)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:269)
    at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:290)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:295)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1270)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1078)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1130)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1126)
    at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1547)
    at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4918)
    at org.eclipse.swt.widgets.Tree.WM_CHAR(Tree.java:6079)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4799)
    at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6074)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5110)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2552)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3822)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
它引用的代码段如下所示:

projectName = new Text(container, SWT.SINGLE | SWT.BORDER);
    projectName.setLayoutData(gridDataMain);
    projectName.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            String projectNameString = projectName.getText();
            System.out.println(projectNameString);
            if(projectNameString.length() != 0) {
                updateStatus(beanMapper.projectNameChanged(projectNameString));
            }
            else {
                updateStatus(ValidationConstants.PROJECT_NAME_EMPTY_MESSAGE);
            }
        }
    });
projectNameString
能够获取该值,并且该值也存储在文本字段中。我不知道NullPointerException是怎么来的

请帮我解决这个问题。

我解决了我的错误

我没有初始化
BeanMapper
类,因此
BeanMapper
的对象,即
BeanMapper
指向
null


一旦我初始化了
BeanMapper
,一切正常。

第78行是updateStatus(BeanMapper.projectNameChanged(projectNameString));那么,
beanMapper
可能为空-进行一些调试。@greg-449调试后,我将其缩小为一个结论。如果我试图将该值传递给与上述代码在同一类中的方法,它将正常工作。如果我试图传递值的方法在另一个类中,那么它将为我提供
NullPointerException