关于AVUser子类化的一些问题,求指教

1、登陆时如果不用

public static <T extends com.avos.avoscloud.AVUser> T logIn(java.lang.String username, java.lang.String password, java.lang.Class<T> clazz)

进行登陆,在接下来的代码中调用

public static <T extends com.avos.avoscloud.AVUser> T getCurrentUser(java.lang.Class<T> userClass)

则会出现转换异常,现在不明白为什么必须要用带有子类的方法登陆才可以用此方法,而且注册的时候没有带有子类操作的方法,是不是也不能用此方法呢???

2、

public static synchronized void changeCurrentUser(com.avos.avoscloud.AVUser newUser, boolean save)

第二个参数是什么意思?替换当前存储的AvUser对象?

3、

public static void alwaysUseSubUserClass(java.lang.Class<? extends com.avos.avoscloud.AVUser> clazz)

这个方法是什么意思?我在Application中使用了此方法,但是getCurrentUser(subUser.class)依然出现转换异常。

阅读 4.3k
1 个回答

1.我们现阶段的代码确实有这个情况,我会尽快修正并且发布版本。但是你现在可以使用AVUser.cast方法来强转一次AVUser.getCurrentUser()
2.AVUser有文件和内存缓存。调用此方法一定会改变内存里的currentUser,第二参数能够决定是否需要替换文件缓存内的方法。这个方法平时都是SDK的开发人员使用较多。。。在不清楚的情况下,请勿使用,以免造成错误。
3.这个方法的意图主要是“所有关联对象中的AVUser对象都会被强转成注册的AVUser子类对象”,而不是指currentUser本身

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进