上面的例子中的Map,一般来说,在Java中会对应一个类:
public class User {
String name;
int age;
String country;
Gender gender;
}
enum Gender {
MALE, FEMALE
}
如果想让flutter传输这个对象而不用在flutter层手动去编写User这个类,以及编写fromJson/toJson方法,你可以这样做:
Android侧
1、定义一个接口,添加注解@FIDL。这个注解将告知annotationProcessor生成一些接口和类的描述文件。
@FIDL
public interface IUserService {
void initUser(User user);
}
接口方法的限制如下:
- 由于dart不支持方法重载,所以接口中不能出现同名方法
- 参数只支持实体类,不支持回调
- 由于JSON解码的限制,Java需要有无参构造函数
2、Android Studio点击sync,或者执行:
./gradlew assembleDebug
然后就会产生一堆json文件,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCVMvuSt-1647447065078)(https://user-gold-cdn.xitu.io/2020/3/16/170e226e1aeed837?imageView2/0/w/1280/h/960/ignore-error/1)