public TenantAccessToken tenantAccessToken; /** * 获取token * @return */ @Override public TenantAccessToken getTenantAccessToken(){ if (tenantAccessToken == null || tenantAccessToken.getTenantAccessToken() == null || System.currentTimeMillis() - lastUpdateTime >= Long.parseLong(tenantAccessToken.getExpire()) * 1000){ Map<String, String> token = feiShuApiService.getToken(appId, appSecret); String accessToken = token.get("tenant_access_token"); Assert.checkResponseCode(token.get("code"), token.get("msg")); tenantAccessToken.setTenantAccessToken(accessToken); tenantAccessToken.setExpire(token.get("expire")); lastUpdateTime = System.currentTimeMillis(); } return tenantAccessToken; }
原因:
成员变量 tenantAccessToken 没有进行初始化,tenantAccessToken
本身为 null
:即使 accessToken
不为空,如果 tenantAccessToken
对象没有被初始化,那么对它的任何属性访问都会抛出 NullPointerException
。