如何在java中的类方法中使用接口?

时间:2017-04-20 05:41:51

标签: java android asp.net-web-api

当我在android中使用接口时,如何将其作为方法返回?例如:

public interface Status {
    public void Oncheck(boolean Ok);
}

   public boolean Login(String Username, String Password)
{
    apic.Execute_Bool(
            "/Login_Small?username=" + Username + "&password=" + Password + "", new Status() {
                @Override
                public void Oncheck(boolean Ok) {
                    return ;
                }
            });
}

 public void Execute_Bool(String Url,final Status callback)
{
    Api_HttpClient.get(Url, null, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            if (statusCode==200)
            callback.Oncheck(true);
            else callback.Oncheck(false);
        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
            callback.Oncheck(false);
        }
    });
}

当我使用Login(用户名,密码)时,没有返回bool。 但是在使用时

     apic.Execute_Bool(
        "/Login_Small?username=" + Username + "&password=" + Password + "", new Status() {
            @Override
            public void Oncheck(boolean Ok) {
                return ;
            }
        });

在活动中它是有效的。 我该怎么做才能在methid中设置它?

1 个答案:

答案 0 :(得分:0)

您的登录方法方法没有返回语句,我怀疑这段代码甚至可以这样编译 由于您已经在进行异步http调用,因此您无法真正获得同步返回的登录方法。您的代码将按以下顺序执行:

Trying out routing - Search

有两种方法可以解决这个问题:
您可以重构代码,以便调用Login的方法不需要返回值并编写另一个方法,然后从Oncheck方法调用该方法。
或者您可以寻找同步方式来发出该http请求,您必须检查该请求的文档。
顺便说一句,在java中,以大写字母开头的唯一名称是类名。方法和变量以小写字母开头使用camelCase(apic.executeBool)。