从API获取信息后,我正在parseJson()
方法中设置team
对象的值。尽管变量team已声明为静态并初始化,并且我在设置数据时使用了this
运算符,但在team
对象中没有设置数据,当我执行team.getTeamName()时,我会得到java.lang.NullPointerException:println需要一个消息
代码:
public class TeamActivity extends AppCompatActivity {
private RequestQueue queue;
private String teamName;
private static Team team = new Team();
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.team_activity_layout);
Intent intent = getIntent();
teamName = intent.getStringExtra("teamName");
queue = Volley.newRequestQueue(this);
parseJSON();
Log.i("Team", this.team.getTeamName());
}
@RequiresApi(api = Build.VERSION_CODES.O)
private void parseJSON(){
String url = "http://192.168.0.174:8080/team/" + teamName;
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, response -> {
try {
this.team.setId(Long.parseLong(response.getString("id")));
this.team.setTeamName(response.getString("teamName"));
this.team.setTotalMatches(Long.parseLong(response.getString("totalMatches")));
this.team.setTotalWins(Long.parseLong(response.getString("totalWins")));
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> Log.i("ERROR","Couldn't parse JSON"));
queue.add(jsonObjectRequest);
}}
java.lang.NullPointerException:println需要消息
错误意味着team.getTeamName()
为Null
(并且日志正文不能为Null
)。这是显而易见的,因为您刚刚在排队请求(parsejson
)之后调用log
。Volley将对这个请求进行排队,发送它,获得响应,然后用获取的数据(或错误)调用回调。这至少需要几毫秒,因为这是IO异步操作,同时您正在尝试log
空数据
在将解析数据设置到静态团队
对象之后,将日志
调用移动到回调中。然后它就会工作并打印你的名字
this.team.setTeamName(response.getString("teamName"));
Log.i("Team", this.team.getTeamName()); // moved from onCreate
顺便说一句。Team Team
可能不应该设置为Static
甚至不应该初始化。只要是null
,您就会知道您的代码(还没有)提取数据。在回调内部创建tempTeam=new Team();
,解析数据并设置为此本地实例。然后检查所有内容是否解析良好,如果是,则将local-callbackteam
对象附加到this.team=tempteam;
,然后您的日志
将“开始工作”
我有一个名为AnimalsData的文件,它有一个由数组组成的对象。数组由一个对象和另一个数组组成。它看起来像这样: 我的HTML文件如下所示: 我正试图获取的值的类名对象从动画类数组。我一直在使用以下两个stackoverflow页面作为指南: 访问JSON数组中的对象和访问/处理(嵌套)对象、数组或JSON 我有另一个javascript文件,其中包含以下内容: 编辑我将for in循环中的"
我正在尝试编写一个可以搜索对象[]数组的SpEL表达式。下面是一些示例代码: 有谁能帮我写一个SpEL来搜索arr并找到第一个具有属性“bar”的对象并返回bar的值吗? 它的实际应用是,我正在为一个方面编写注释,并试图在注释中声明参数的路径: 非常感谢你的帮助!
我需要在spring批处理作业的步骤中动态设置块大小,该步骤存储在数据库中,即需要从数据库中获取块大小并将其设置到bean中。 我的问题是: 从ID='some_id_param_value'的SOME_TABLE_NAME选择CHUNK_SIZE 在这里,的值将来自作业参数,该参数是通过与请求一起传递到 它无法从访问“chunk”键值,因此引发。是否需要以某种方式对其进行升级,以便可以在step
问题内容: 我正在与集成的android应用程序上工作。我正在使用fql查询从Facebook获取信息。我的fql方法是 myjson对象具有我想要的所有信息。像这样 问题是如何将该信息存储到不同的阵列中? 请为此修改一些代码。 问题答案: 检查http://www.androidhive.info/2012/01/android-json-parsing- tutorial/
我有一个SQL函数,它返回一个对象。 上面返回一个对象,比如 我需要从对象中获取单独的值。
} 我想从这个json对象中获取值。 我在下面试过了,但没有成功。