针对Android开发,对Google发布的开源库AutoValue做了一个简单扩展,可以自动构建以下功能:
createFromSharedPreferences(SharedPreferences sharedPreferences)
createFromCursor(Cursor cursor)
Parcelable implementations if the class implements Parcelable
下载
在你的build.gradle文件中添加以下代码:
buildscript { dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } repositories { maven { url "https://jitpack.io" } } apply plugin: 'com.neenbedankt.android-apt' dependencies { compile 'com.github.xizzhu.auto-droid:auto-droid-annotations:0.1' apt 'com.github.xizzhu.auto-droid:auto-droid-processors:0.1' }
使用
从shared preference构建对象:
// annotate your AutoValue objects as usual @AutoValue public abstract class MyPreference { // indicate that the factory will retrieve the value from shared preferences @SharedPreference(key = "keyOfMyInt", defaultValue = "8964") abstract int myIntFromPreference(); // adds the factory method public static MyPreference create(SharedPreferences sharedPreferences) { return AutoValue_MyPreference.createFromSharedPreferences(sharedPreferences); } }
从cursor构建对象:
// annotate your AutoValue objects as usual @AutoValue public abstract class MyCursor { // indicate that the factory will retrieve the value from cursor @ColumnName("keyOfMyInt") abstract int myIntFromPreference(); // adds the factory method public static MyPreference create(Cursor cursor) { return AutoValue_MyPreference.createFromCursor(cursor); } }