如何解决 - java.lang.IllegalArgumentException: text cannot be null or empty
How to solve - java.lang.IllegalArgumentException: text cannot be null or empty
我试图在 class 的顶部声明变量,这样我就不必在使用它们时不断地声明它们。我已经这样做了,所以在我想要 运行 程序之前不会出现错误。我的代码如下:
public class UI extends javax.swing.JFrame {
/**
* Creates new form UI
*/
public UI() {
initComponents();
this.service.setUsernameAndPassword("9a1d5de6-7c2b-427d-a574-d6fe097c86b9", "ztil6GSHwd34");
this.str = txtInput.getText();
}
String str;
PersonalityInsights service = new PersonalityInsights();
ArrayList<Double> percentagesList = new ArrayList();
Profile profile = service.getProfile(str).execute();
Gson gson = new Gson();
Root C = gson.fromJson(profile.toString(), Root.class);
Root.SubTree t = C.getSubTree(); //Gets subtree from root
ArrayList<Children> c = t.getChildren(); //Gets <Children> from Root.getSubTree
错误
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: text cannot be null or empty
我相信它是在说文本 str
不能为 null 或为空。我该如何解决这个问题? str
在 运行 连接它时已经在其中包含文本,因此不确定为什么会出现此错误。
在这一行中,您定义了一个新变量 str。默认为空:
String str;
看来,this.str
和str
是不同的变量。
删除该行并在调用方法时使用 this.str
。
您应该 post 整个堆栈跟踪以更好地理解问题,具体是在什么时候抛出异常?
好的,我刚看到你代码中的评论:)
你不应该初始化
Profile profile = service.getProfile(str).execute();
在 class 中,但在从中读取 str 后直接在构造函数中
组件
public UI() {
txtInput.setText("TEXT");
profile = service.getProfile(str).execute();
Root C = gson.fromJson(profile.toString(), Root.class);
Root.SubTree t = C.getSubTree(); //Gets subtree from root
ArrayList<Children> c = t.getChildren(); //Gets <Children> from Root.getSubTree
所以你有一个 UI class 并且这里的所有变量都是数据成员......
这里的问题似乎是 str ,它是空的,因此你的服务在抱怨。
数据成员在构造函数之前初始化,因此在设置配置文件时 ur str 为空。
我会在 class 中声明成员并在构造函数中初始化它们,或者在第 6 行给 str 一个有效的初始值。
我试图在 class 的顶部声明变量,这样我就不必在使用它们时不断地声明它们。我已经这样做了,所以在我想要 运行 程序之前不会出现错误。我的代码如下:
public class UI extends javax.swing.JFrame {
/**
* Creates new form UI
*/
public UI() {
initComponents();
this.service.setUsernameAndPassword("9a1d5de6-7c2b-427d-a574-d6fe097c86b9", "ztil6GSHwd34");
this.str = txtInput.getText();
}
String str;
PersonalityInsights service = new PersonalityInsights();
ArrayList<Double> percentagesList = new ArrayList();
Profile profile = service.getProfile(str).execute();
Gson gson = new Gson();
Root C = gson.fromJson(profile.toString(), Root.class);
Root.SubTree t = C.getSubTree(); //Gets subtree from root
ArrayList<Children> c = t.getChildren(); //Gets <Children> from Root.getSubTree
错误
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: text cannot be null or empty
我相信它是在说文本 str
不能为 null 或为空。我该如何解决这个问题? str
在 运行 连接它时已经在其中包含文本,因此不确定为什么会出现此错误。
在这一行中,您定义了一个新变量 str。默认为空:
String str;
看来,this.str
和str
是不同的变量。
删除该行并在调用方法时使用 this.str
。
您应该 post 整个堆栈跟踪以更好地理解问题,具体是在什么时候抛出异常? 好的,我刚看到你代码中的评论:)
你不应该初始化
Profile profile = service.getProfile(str).execute();
在 class 中,但在从中读取 str 后直接在构造函数中 组件
public UI() {
txtInput.setText("TEXT");
profile = service.getProfile(str).execute();
Root C = gson.fromJson(profile.toString(), Root.class);
Root.SubTree t = C.getSubTree(); //Gets subtree from root
ArrayList<Children> c = t.getChildren(); //Gets <Children> from Root.getSubTree
所以你有一个 UI class 并且这里的所有变量都是数据成员...... 这里的问题似乎是 str ,它是空的,因此你的服务在抱怨。 数据成员在构造函数之前初始化,因此在设置配置文件时 ur str 为空。 我会在 class 中声明成员并在构造函数中初始化它们,或者在第 6 行给 str 一个有效的初始值。