首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >方法返回错误的值,因为返回太早

方法返回错误的值,因为返回太早
EN

Stack Overflow用户
提问于 2019-05-22 06:34:48
回答 1查看 80关注 0票数 0

很抱歉这个奇怪的帖子标题,但我不知道如何比这个更好地描述我的问题。

我目前正在开发一个使用Microsoft Graph API的Java项目(这是我第一次使用Microsoft Graph API)。

我认为我的问题是Java的一个普遍问题。我有一个类,它提供了一个Graph API客户端,第二个类包含我想要使用Graph API执行的所有操作。包含操作方法的类应该将结果返回给client类。

一些代码。我的客户端类(调用操作的相关部分):

代码语言:javascript
运行
复制
client = GraphServiceClientManager.getInstance().getGraphServiceClient();
Operations task = new Operations(client);
System.out.println(task.getUsernamebyUPN("USER UPN"));

我的类中的操作:

代码语言:javascript
运行
复制
public String username = "0";

    public String getUsernamebyUPN(String UPN) {
       client.users(UPN).buildRequest().get(new ICallback<User>() {
            @Override
            public void success(User user) {
                username = user.displayName;

            }

            @Override
            public void failure(ClientException ex) {
                ex.printStackTrace();
            }
        });
        return username;
    }

所以问题是,当我运行代码时,它将返回值为0的用户名,而不是我想要的用户名。username变量将在返回后更改。

如果我在成功方法的“System.out.prntln= user.displayName;”行下面添加一个用户名(Username),我的输出将是:

代码语言:javascript
运行
复制
0
The username I want

我该如何解决这个问题?你需要更多的代码吗?

非常感谢你的帮助。:)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56247145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档