Java内部抽象类的匿名类初始化
来源:互联网 发布:q扫雷软件 编辑:程序博客网 时间:2024/05/29 02:02
说在前面的话,以前写过一次这个变态代码,后来重构,把那个new的语法简化了,最近又要整,差点都想不起来了,留个文档把
1、下面这个案例更变态,抽象类还有一个个泛型类:首先内部抽象类的定义:
/* * * Created by stone * * */package net.stoneapp.quanshi.qsand.application;import android.app.Application;import android.util.Log;import android.widget.Toast;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import net.stoneapp.quanshi.qsand.utils.AndUtils;import cn.jpush.android.api.JPushInterface;import retrofit2.Call;import retrofit2.Response;import rx.Subscriber;/** * Created by dengel on 15/12/28. */public class QsandApplication extends Application { AndUtils mAndUtils; @Override public void onCreate() { super.onCreate(); mAndUtils = new AndUtils(this); JPushInterface.setDebugMode(true); JPushInterface.init(this); } public AndUtils getAndUtils(){ return mAndUtils; } public abstract class JSONSubscriber extends Subscriber<JSONObject> { @Override public void onCompleted() { } @Override public void onError(Throwable e) { if(e.getMessage()!=null) { Log.i("Subscriber Error", e.getMessage()); Toast.makeText(QsandApplication.this, e.getMessage(), Toast.LENGTH_LONG).show(); } e.printStackTrace(); } } public abstract class Callback<T> implements retrofit2.Callback<T>{ @Override public void onResponse(Call<T> call, Response<T> response) { int status = response.code(); if(status>=400 && status<500){ JSONObject jsonObj = (JSONObject)JSON.parse(response.errorBody().toString()); Toast.makeText(QsandApplication.this,jsonObj.getString("detail"),Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(Call<T> call,Throwable t) { if(t.getMessage()!=null) { Log.e("Callback Error:", t.getMessage()); Toast.makeText(QsandApplication.this, t.getMessage(), Toast.LENGTH_LONG).show(); } t.printStackTrace(); } }}
2、匿名类初始化方法:
public void postVerifyCode(View view){ mMobilelView.setError(null); String mobile = mMobilelView.getText().toString(); boolean cancel = false; View focusView = null; if (TextUtils.isEmpty(mobile) || !StringUtils.isMobileNumber(mobile)) { mMobilelView.setError(getString(R.string.error_invalid_mobile)); focusView = mMobilelView; cancel = true; } if (cancel){ focusView.requestFocus(); }else { showProgress(true); Services.AuthService service = Services.getRetrofit().create(Services.AuthService.class); User user = new User(); user.setMobile(mobile); final QsandApplication qsandApplication = (QsandApplication)getApplication(); service.postVerifyCode(user).enqueue(qsandApplication.new Callback<User>(){//重点就在这句new的语法 @Override public void onResponse(Call<User> call, Response<User> response) { } }); } }
0 0
- Java内部抽象类的匿名类初始化
- java 内部匿名类
- java内部匿名类
- 关于java里面Collection包括List,Map等初始化内部匿名类和泛型的一个例子
- java 类内部初始化顺序
- 实现抽象类内部的抽象方法
- Java匿名类的初始化(没有构造器)
- 内部匿名类
- 内部匿名类
- 内部匿名类 接口
- Java基础之接口抽象类的内部实现
- 抽象类 接口 匿名类的区别
- 抽象类和匿名方法的使用
- 内部匿名类和匿名类
- Java 学习笔记 (9) - Java 事件机制 内部匿名类的应用
- 静态内部抽象类
- 静态内部抽象类
- Java的匿名类
- 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量(r)
- 在js传递参数中含加号(+)的处理方式
- angularjs向指令中传递数据
- 15. 3sum(重要)
- matlab读入多张图片
- Java内部抽象类的匿名类初始化
- ios tableview/collectionView关于点击cell后 刷新cell
- 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)(r)
- python 安装wxPython
- 让动画循环播放的方法
- 这一次,我优化了37%的内存
- JNI NDK开发Crash错误定位 调试
- Proj~onStreetPaking的几个知识点和问题
- 日历--给input赋值