无法通过界面了解方法的可见性

时间:2016-10-14 14:28:52

标签: java facebook

我正在使用开源库来测试facebook api功能https://code.google.com/archive/p/facebook-test-java-api/

现在我要做的是更改我的测试用户名。我潜入了这个库的代码,发现了以下内容:

public interface FacebookTestUserAccount
{

 // irrelevant methods
    /**
     * Gives access to change settings for the test user.
     * @return An {@code AccountSettingsChanger} responsible for updating the account settings.
     */
    AccountSettingsChanger changeAccountSettings();
// irrelevant methods
}

现在我的测试是这样的:

@Test
    public void updateNameOfTestUser(){
        List<FacebookTestUserAccount> allTestUsers = store.getAllTestUsers();
        FacebookTestUserAccount facebookTestUserAccount = allTestUsers.get(0);
        facebookTestUserAccount.// here after dot I cant see method changeAccountSettings() 
    }

由于我的refrence方法是接口的类型,并且该方法是在接口中定义的,我正在努力:

为什么我无法在测试类中看到该方法?

这是getALL();

的代码
 public List<FacebookTestUserAccount> getAllTestUsers() {
        init();

        String jsonResponse = get("/%s/accounts/test-users", applicationId);

        JSONObject accounts = parseJsonObject(jsonResponse);

        LinkedList<FacebookTestUserAccount> result = new LinkedList<FacebookTestUserAccount>();
        JSONArray jsonArray = (JSONArray) accounts.get("data");
        for (Object element : jsonArray) {
            JSONObject jsonUser = (JSONObject) element;
            result.add(buildFacebookAccount(jsonUser));
        }

        log.debug("* Found [{}] accounts on Facebook ", result.size());

        return result;
    }

1 个答案:

答案 0 :(得分:0)

我可以想到两个可能的原因:

  1. 您的IDE无法加载自动完成建议。要检查这一点,只需在点后面写changeAccountSettings(),然后尝试编译。 (我怀疑这是你的问题,因为你的问题就像“为什么我看不到这个......?”

  2. 您的代码库中有两个不同的FacebookTestUserAccount,并且导入了错误的{{p>