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