Java @ 批注 整理集合

1. @SerializedName

  • 用作转化json字符串的快捷方式,首先需要引入Gson方法,我自己个认为呢,这个方法主要是将字符串转化成类的功能。(是反序列化?)
  • 如何使用该SerializedName,对于android来说,首先需要引入Gson的包(见下文),需要解析字符串的类,在对应的类成员的上面添加@SerializedName("名称"),然后调用gson的方法,即可以将该字符串转化为该类的对象。
    1. 首先在gradle中添加,引入gson
      compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
    2. 其次在要生成的类中添加批注
    public class Sister {
      @SerializedName("_id")
      private String _id;
      @SerializedName("createdAt")
      private String createAt;
      @SerializedName("desc")
      private String desc;
      @SerializedName("publishedAt")
      private String publishedAt;
    }
    
    1. 调用Gson方法,生成相应的对象
    Gson gson = new Gson();
    Sister sister = gson.fromJson(content, Sister.class);
    

2. @Nullable

  • 参数可为null

3. @TargetApi

  • @TargetAPI 对应android.annotation.TargetApi,与它相似的注解还有@SuppressLint,作用都是告诉编译器:你可以忽略掉lint错误了,我用高于minSdk的api又咋滴?要你管啊~我不怕啊
  • 如果整个类都是新的api的版本,你就可以把@Target标注移除掉。
  • 所以targetAPI的作用只是让高于minSDK版本的方法编译不报错。
  • 综上,@Target的作用在于提示:使用高编译版本的代码,为了通用性兼容运行此代码的低版本平台。要求程序员做出区分对待的加载。如用内部类等方式区分加载
  • 比如你的androidmanifest设置了minsdkversion为8,那么你在代码中使用了高于api8的代码,就算你用的是4.4的sdk进行的代码编译,只要你没使用@TargetApi,很抱歉,运行android lint直接就显示错误提示。这个时候我们该怎么办呢?就是在方法或类的开头写上@TargetApi(xx)。如果你下面的代码要在api13的情况下运行,那么xx处你就填写13。不能填低了,填低了,还是报错。
  • 这和@SuppressLint("NewApi")不一样。suppress只告诉lint,我这代码如果高于你的minsdkversion,那么请忽略编译错误。

4. @Deprecated

  • 表示该类已经弃用了,或者是不推荐使用该类方法。

你可能感兴趣的:(Java @ 批注 整理集合)