使用'if'语句检查后,空指针异常 [英] Null Pointer Exception after checking with 'if' statement
问题描述
public String [] getFileData()throws IOException
{
String file_name =C:/Users/Liloka/Source/textfiles/Lines.txt;
try {
ReadFile file = new ReadFile(file_name);
aryLines = file.OpenFile(); (int i = 0; i< aryLines.length; i ++)
System.out.println(aryLines [i]);
}
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
return aryLines;
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()== enterBtn)
{
String Text = textToAdd.getText();
if(!(Text.equals(null)))
{
RF.addNewElement(Text);
System.out.println(Text);
try
{
RF.writeToFile();
getFileData();
}
catch(异常e)
{
}
}
其他JOptionPane.showMessageDialog(null,请输入一个字! );
}
}
'else'通过这个:
if(Text.equals(null));
我也尝试过:
if(Text!= null));
这在过去一直为我工作,但现在不行!其他类是:
public String [] OpenFile()throws IOException
{
FileReader fr = new的FileReader(路径);
BufferedReader br = new BufferedReader(fr);
int numberOfLines = readLines();
textData = new String [numberOfLines];
int i; (i = 0; i< numberOfLines; i ++)
{
textData [i] = br.readLine();
}
br.close();
return textData;
}
int readLines()throws IOException
{
FileReader file_to_read = new FileReader(path);
BufferedReader bf = new BufferedReader(file_to_read);
String aLine;
numberOfLines = 0;
while((aLine = bf.readLine())!= null)
{
numberOfLines ++;
}
// numberOfLines ++;
bf.close();
return numberOfLines;
}
public void addNewElement(String newElement)
{
String texticles = newElement;
numberOfLines = numberOfLines ++;
textData [numberOfLines] = texticles;
// numberOfLines ++; //增加numberOfLines为要添加的下一个元素
}
public void writeToFile()throws IOException
{
FileWriter fstream = new FileWriter(path);
BufferedWriter outFile = new BufferedWriter(fstream);
// numberOfLines ++;
outFile.write(textData [numberOfLines]);
//outFile.write(,);
outFile.write(\r\\\
);
outFile.close();
}
再次谢谢!
错误:
线程中的异常AWT-EventQueue-0java.lang.NullPointerException
at textfiles.JListExample.actionPerformed(JListExample.java:115)
在javax.swing.AbstractButton.fireActionPerformed(未知来源)
当我键入或不输入内容并按下输入按钮时,我收到错误。
这是
的错误 if(Text!= null)
线程AWT-EventQueue-0中的异常java.lang.NullPointerException
在textfiles.JListExample.actionPerformed(JListExample.java:115)
在javax.swing.AbstractButton.fireActionPerformed(未知源)
在javax.swing.AbstractButton $ Handler.actionPerformed(未知来源)
在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)
在javax.swing.DefaultButtonModel.setPressed(未知源)
在javax.swing.plaf.basic.Bas icButtonListener.mouseReleased(未知源)
在java.awt.Component.processMouseEvent(未知源)
在javax.swing.JComponent.processMouseEvent(未知源)
在java.awt.Component。 processEvent(未知源)
在java.awt.Container.processEvent(未知源)
在java.awt.Component.dispatchEventImpl(未知源)
在java.awt.Container.dispatchEventImpl(未知源)
在java.awt.Component.dispatchEvent(未知源)
在java.awt.LightweightDispatcher.retargetMouseEvent(未知源)
在java.awt.LightweightDispatcher.processMouseEvent(未知来源)
在java.awt.LightweightDispatcher.dispatchEvent(未知源)
在java.awt.Container.dispatchEventImpl(未知源)
在java.awt.Window.dispatchEventImpl(未知源)
在java.awt.Component.dispatchEvent(未知源)
在java.awt.EventQueue.dispatchEventImpl(未知来源)
在java.awt.EventQueue.access $ 000(未知来源)
在java.awt.EventQueue $ 1.run(未知来源)
在java.awt.EventQueue $ 1.run(未知来源)
在java.security.AccessController.doPrivileged(本机方法)
在java.security.AccessControlContext $ 1.doIntersectionPrivilege(未知源)
在java.security.AccessControlContext $ 1.doIntersectionPrivilege(未知源)
在java.awt.EventQueue $ 2.run(未知源)
在java.awt。 EventQueue $ 2.run(未知源)
在java.security.AccessController.doPrivileged(本机方法)
在java.security.AccessControlContext $ 1.doIntersectionPrivilege(未知源)
在java.awt。 EventQueue.dispatchEvent(未知源)
在java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)
在java.awt.EventDispatchThread.pumpEventsForFilter(未知源)
在java.awt.EventDispatchThread。 pumpEventsForHierarchy(未知源)
在java.awt.EventDispatchThread.pumpEvents(未知源)
在java.awt.EventDispatchThread.pumpEvents(未知源)
在java.awt.EventDispa tchThread.run(未知来源)
code> if(Text.equals(null));
每次文本为空时,上述会抛出NullPointerException。任何时候你使用。 if(Text!= null)如果你在之后得到一个NPE,那么你将获得一个NullPointerException。
>,请发布堆栈跟踪。
I'm getting a really annoying error, saying I'm getting a null pointer exception but there's an if statement to check to see if the text is null before proceeding:
public String[] getFileData() throws IOException
{
String file_name = "C:/Users/Liloka/Source/textfiles/Lines.txt";
try {
ReadFile file = new ReadFile(file_name);
aryLines = file.OpenFile();
for(int i =0; i<aryLines.length; i++)
{
System.out.println(aryLines[i]);
}
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
return aryLines;
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource() == enterBtn)
{
String Text = textToAdd.getText();
if(!(Text.equals(null)))
{
RF.addNewElement(Text);
System.out.println(Text);
try
{
RF.writeToFile();
getFileData();
}
catch(Exception e)
{
}
}
else JOptionPane.showMessageDialog(null, "Please enter a word!");
}
}
The only time it even considered the 'else' was through this:
if(Text.equals(null));
I've also tried doing:
if(Text != null));
which has worked for me in the past but not now! Other classes are:
public String[] OpenFile() throws IOException
{
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
int numberOfLines = readLines();
textData = new String[numberOfLines];
int i;
for(i=0; i<numberOfLines; i++)
{
textData[i] = br.readLine();
}
br.close();
return textData;
}
int readLines() throws IOException
{
FileReader file_to_read = new FileReader(path);
BufferedReader bf = new BufferedReader(file_to_read);
String aLine;
numberOfLines=0;
while((aLine = bf.readLine()) != null)
{
numberOfLines++;
}
//numberOfLines++;
bf.close();
return numberOfLines;
}
public void addNewElement(String newElement)
{
String texticles = newElement;
numberOfLines = numberOfLines++;
textData[numberOfLines] = texticles;
//numberOfLines++; //Increments numberOfLines for the next element to be added
}
public void writeToFile() throws IOException
{
FileWriter fstream = new FileWriter(path);
BufferedWriter outFile = new BufferedWriter(fstream);
//numberOfLines++;
outFile.write(textData[numberOfLines]);
//outFile.write(",");
outFile.write("\r\n");
outFile.close();
}
Thank you, again!
Error:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at textfiles.JListExample.actionPerformed(JListExample.java:115)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
I get the error when I've typed or not typed something and pressed the enter button.
This is the error for
if(Text != null)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at textfiles.JListExample.actionPerformed(JListExample.java:115)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
if(Text.equals(null));
The above will throw a NullPointerException each time Text is null. Anytime you use the "." operator on null you get a NullPointerException.
If you are getting a NPE after if(Text != null), please post the stack trace.
这篇关于使用'if'语句检查后,空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!