R类

@Data
@Accessors(chain = true)
public class R<T> implements Serializable {

    /** 200 OK - [GET]:服务器成功返回用户请求的数据 */
    public static final int OK = 200;

    /** 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。 */
    public static final int CREATED = 201;

    /** 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务) */
    public static final int ACCEPTED = 202;

    /** 204 NO CONTENT - [DELETE]:用户删除数据成功。 */
    public static final int NO_CONTENT = 204;

    /** 400 INVALID REQUEST - [POST/PUT/PATCH]:
    用户发出的请求有错误,服务器没有进行新建或修改数据的操作。*/
    public static final int INVALID_REQUEST = 400;

    /** 401 Unauthorized - [*]:
    表示用户没有权限(令牌、用户名、密码错误)。 */
    public static final int UNAUTHORIZED = 401;

    /** 403 Forbidden - [*] 
    表示用户得到授权(与401错误相对),但是访问是被禁止的。*/
    public static final int FORBIDDEN = 403;

    /** 404 NOT FOUND - [*]:
    用户发出的请求针对的是不存在的记录,服务器没有进行操作。 */
    public static final int NOT_FOUND = 404;

    /** 410 Gone -[GET]:
    用户请求的资源被永久删除,且不会再得到的。*/
    public static final int GONE = 410;

    /** 422 Unprocesable entity - [POST/PUT/PATCH] 
    当创建一个对象时,发生一个验证错误。 */
    public static final int UNPROCESABLE_ENTITY = 422;

     /** 500 INTERNAL SERVER ERROR - [*]:
     服务器发生错误,用户将无法判断发出的请求是否成功。 */
    public static final int INTERNAL_SERVER_ERROR = 500;

    private int code;
    private String message;
    private T data;

    /**
     * 服务器成功返回用户请求的数据
     * @param message 消息
     */
    public static R ok(String message){
        return new R().setCode(OK).setMessage(message);
    }

    /**
     * 服务器成功返回用户请求的数据
     * @param data 数据
     */
    public static R ok(Object data){
        return new R().setMessage("OK").setCode(OK).setData(data);
    }

    /**
     * 用户新建或修改数据成功。
     */
    public static R created(String message){
        return new R().setCode(CREATED).setMessage(message);
    }

    /**
     * 表示一个请求已经进入后台排队(异步任务)
     */
    public static R accepted(String message){
        return new R().setCode(ACCEPTED).setMessage(message);
    }

    /**
     * 用户删除数据成功
     */
    public static R noContent(String message){
        return new R().setCode(NO_CONTENT).setMessage(message);
    }

    /**
     * 用户发出的请求有错误,服务器没有进行新建或修改数据的操作。
     */
    public static R invalidRequest(String message){
        return new R().setCode(INVALID_REQUEST).setMessage(message);
    }

    /**
     * 表示用户没有权限(令牌、用户名、密码错误)
     */
    public static R unauthorized(String  message){
        return new R().setCode(UNAUTHORIZED).setMessage(message);
    }

    /**
     * 登录以后,但是没有足够权限
     */
    public static R forbidden(){
        return new R().setCode(FORBIDDEN).setMessage("权限不足!");
    }

    /**
     * 用户发出的请求针对的是不存在的记录,服务器没有进行操作。
     */
    public static R notFound(String message){
        return new R().setCode(NOT_FOUND).setMessage(message);
    }

    /**
     * 用户请求的资源被永久删除,且不会再得到的。
     */
    public static R gone(String message){
        return new R().setCode(GONE).setMessage(message);
    }

    /**
     * 当创建一个对象时,发生一个验证错误。
     */
    public static R unproecsableEntity(String message){
        return new R().setCode(UNPROCESABLE_ENTITY)
          .setMessage(message);
    }

    /**
     * 将异常消息复制到返回结果中
     */
    public static R failed(ServiceException e){
        return new R().setCode(e.getCode())
          .setMessage(e.getMessage());
    }

    /**
     * 服务器发生错误,用户将无法判断发出的请求是否成功。
     */
    public static R failed(Throwable e){
        return new R().setCode(INTERNAL_SERVER_ERROR)
          .setMessage(e.getMessage());
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 中,R 是一个自动生成的,它包含了应用程序中所有资源的标识符,如布局文件、字符串、图像和样式等。这些资源在编译时被打包到 APK 文件中,并在运行时通过 R 来访问它们。R 的命名空间与应用程序的包名相同,因此可以使用它来引用应用程序中的所有资源。 R 的结构如下: ``` public final class R { public static final class anim { public static final int slide_in_left = 0x7f040000; public static final int slide_out_right = 0x7f040001; } public static final class drawable { public static final int ic_launcher = 0x7f020000; public static final int logo = 0x7f020001; } public static final class layout { public static final int activity_main = 0x7f030000; public static final int list_item = 0x7f030001; } public static final class string { public static final int app_name = 0x7f050000; public static final int hello_world = 0x7f050001; } public static final class style { public static final int AppTheme = 0x7f060000; } } ``` 在这个示例中,R 包含了四个内部:`anim`、`drawable`、`layout` 和 `string`。每个内部都包含了应用程序中相应型资源的标识符。例如,`R.drawable` 内部包含了应用程序中所有 drawable 型资源的标识符。标识符是一个整数值,它是由编译器根据资源名称自动生成的。 在应用程序中,可以使用 R 来访问资源。例如,要在应用程序中设置一个 ImageView 的图像,可以使用以下代码: ``` ImageView imageView = (ImageView) findViewById(R.id.image_view); imageView.setImageResource(R.drawable.logo); ``` 在这个示例中,`R.drawable.logo` 表示应用程序中 drawable 型资源 `logo` 的标识符。通过调用 `setImageResource()` 方法并传递该标识符,可以将该资源设置为 ImageView 的图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值