gpt4 book ai didi

java - 如何防止此代码中出现 NullPointerException?

转载 作者:行者123 更新时间:2023-12-01 06:40:35 24 4
gpt4 key购买 nike

当我按下 sTime 等于 JOptionPane.showInputDialog 窗口上的取消按钮时,如何防止此代码中出现 NullPointerException? (位于“>>”标志处)

我的代码:

insertTableF.addActionListener(new ActionListener () { 
public void actionPerformed(ActionEvent e)
{
int wayPoint1 = 0;
int wayPoint2 = 0;
int PassTime = 0;
Statement statementR;

if (loggedIn == 1)
{

while(passedR ==0)
{
try
{
if (wayPoint1==0)
{
sTagR =JOptionPane.showInputDialog("Please enter the Rhino Tag number:");
iTagR = Integer.parseInt(sTagR);
wayPoint1 =1;
}
if (wayPoint2==0)
{
sGPSX = JOptionPane.showInputDialog("Please enter the horizontal GPS Grid Numbers(eg.3123):");
iGPS = Integer.parseInt(sGPSX);

wayPoint2 = 1;
}

sGPSY = JOptionPane.showInputDialog("Please enter the vertical GPS Grid Letters(eg.XXYY:");
while (PassTime ==0)
{
sTime = JOptionPane.showInputDialog("Please enter the Last date you saw the Rhino(YYYY-MM-DD):");
if (sTime != "")
{
if (isValidDate(sTime))
{
PassTime = 1;
}
else
{
JOptionPane.showMessageDialog(null, "Please use the date format YYYY-MM-DD.");
}
}
else
{
JOptionPane.showMessageDialog(null, "Please use the date format YYYY-MM-DD.");
}
}
sLocation = JOptionPane.showInputDialog("Please enter the Last place you saw the Rhino:");

passedR =1;
}
catch (NumberFormatException nfe)
{
passedR =0;
JOptionPane.showMessageDialog(null, "Please use numbers for the Rhino Tag field.");
}
}
}
}
});

我的格式代码:

    boolean isValidDate(String input) {
if (input == null){
try {
format.setLenient(false);
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
return false;
}

很抱歉这篇文章很长。提前致谢。

这是我收到的错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
at java.text.DateFormat.parse(DateFormat.java:335)
at RhinoGUI.isValidDate(RhinoGUI.java:92)
at RhinoGUI$8.actionPerformed(RhinoGUI.java:507)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

最佳答案

您在 isValidDate() 中的保护条件是错误的:

if (input == null){

应该是这样的

if (input != null){

关于java - 如何防止此代码中出现 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com