我在另一个类的textarea上设置文本时遇到问题。完成简单的脚本后,我想用InputStreamReader在另一个类中更改textarea。我遇到的错误是:java.lang.NullPointerException。 我试图制作get()和set()方法,如果我在包含InputStreamReader的类中使用初始化值创建字符串并尝试使用textarea在类中进行sysout,它会向我显示该字符串但是如果我想要setText则有一个NPE 。 SimpleStringProperty是很好的解决方案吗?
这是输出:
Process process;
process = Runtime.getRuntime().exec(PATH_TO_SIKULI + " -r " + s.toString());
BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String as=null;
stringBuilder = new StringBuilder(as);
while ((as = stdInput.readLine()) != null) {
stringBuilder=stringBuilder.append(as+"\n");
}
while ((as = stdError.readLine()) != null) {
stringBuilder=stringBuilder.append(as+"\n");
}
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
使用TextArea的类
public class ResultController实现Initializable {
@FXML
public TextArea resultTextArea;
@Override
public void initialize(URL location, ResourceBundle resources) {
Platform.runLater(new Runnable() {
@Override
public void run() {
}
});
}
答案 0 :(得分:1)
抛出你的NullPointer:
String as=null;
StringBuilder stringBuilder = new StringBuilder(as);
由于文档非常好描述,您无法将null
传递给
StringBuilder
构造函数。
但情况就是这样:as = null
java.lang.StringBuilder.StringBuilder(String str)
构造一个初始化为。的内容的字符串构建器 指定字符串。字符串生成器的初始容量为16 加上字符串参数的长度。
参数:str缓冲区的初始内容。抛出: NullPointerException - 如果str为null