可以在java中回调外部嵌套类吗?

可以在java中回调外部嵌套类吗?,java,android,callback,nested-class,Java,Android,Callback,Nested Class,这里有一个我正在尝试做的例子 public class BookModel { private void update_method() { get_info task = new get_info(this) task.exicute(some args); } public void finishedCallback(some_return_type result) { /

这里有一个我正在尝试做的例子

 public class BookModel {

        private void update_method() {
            get_info task = new get_info(this)
            task.exicute(some args); 
        }

        public void finishedCallback(some_return_type result) {
        // do some stuff when finsiehd. 
        }


    class get_info extends AsyncTask<HashMap<String, String>, Void, dataType>
    {
        private BookModel bookModel; 

        public get_info ( BookModel reset) {
            bookModel = reset; 
        }

        @Override
        protected dataType doInBackground(arg...)
                        some procscessing. 
        }

        protected void onPostExecute(dataType result) {
            bookModel.finishedCallback(result);
        }
    }
    }
公共类图书模型{
私有void update_方法(){
获取信息任务=新建获取信息(此)
task.execute(一些参数);
}
public void finishedCallback(某些返回类型结果){
//找到后做些事情。
}
类获取\u信息扩展异步任务
{
私人书刊模式;
公共获取信息(图书模型重置){
bookModel=重置;
}
@凌驾
受保护的数据类型doInBackground(arg…)
一些手术。
}
受保护的void onPostExecute(数据类型结果){
bookModel.finishedCallback(结果);
}
}
}
我怎样才能让这个回调系统工作。。。我也尝试过使用一个接口,但它不起作用。我认为这是因为您需要3个带有接口的类(如果我错了,请纠正我)。我也愿意接受任何建议,但如果可能的话,我希望将此功能保留在同一个类中。在此方面的任何帮助都将不胜感激

试试这个

这是为我工作

 public class BookModel implements get_info.xyz {

    private void update_method() {
        get_info task = new get_info(this);
        task.exicute(some args); 
    }

    public void finishedCallback(String result) {
    // do some stuff when finsiehd. 
    }

 }
//----------------------------------
class get_info extends AsyncTask<HashMap<String, String>, Void, dataType>
{


    private xyz bookModel; 
    public interface xyz
    {
       void finishedCallback(String str);
    }
    public get_info ( xyz reset) {
        bookModel = reset; 
    }

    @Override
    protected dataType doInBackground(arg...)
                    some procscessing. 
    }

    protected void onPostExecute(dataType result) {
        bookModel.finishedCallback(result);
    }
}
public类BookModel实现get_info.xyz{
私有void update_方法(){
获取信息任务=新获取信息(此任务);
task.execute(一些参数);
}
public void finishedCallback(字符串结果){
//找到后做些事情。
}
}
//----------------------------------
类获取\u信息扩展异步任务
{
私有xyz图书模型;
公共接口xyz
{
void finishedCallback(字符串str);
}
公共获取信息(xyz重置){
bookModel=重置;
}
@凌驾
受保护的数据类型doInBackground(arg…)
一些手术。
}
受保护的void onPostExecute(数据类型结果){
bookModel.finishedCallback(结果);
}
}

你需要3个带有接口的类
你从哪里得到的?你的doInBackground声明是错误的。您需要
受保护的getProductInfoBriefFull doInBackground(Void…){
@njzk2好吧,我把接口算成一个类…所以你需要接口,发出信号的类和接收信号的类…但是如果你不把接口算成一个类,那么你只需要两个…但问题似乎是这个类是嵌套的。我无法弄清楚你在尝试什么g来实现,但是如果您想从get_info访问BookModel实例,只需编写BookModel.this.finishedCallback(result)@mrak,因为类不是静态的,并且没有歧义(get_info中没有finishedCallback),直接调用
finishedCallback
也可以。