Skip to content

Commit 7685fde

Browse files
committed
解决JBQuery的泛型错误问题,升级到2.0.11版本
1 parent 10390c2 commit 7685fde

6 files changed

Lines changed: 46 additions & 19 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
```
2121
dependencies {
22-
compile("com.javabaas:javasdk:2.0.9")
22+
compile("com.javabaas:javasdk:2.0.11")
2323
}
2424
```
2525

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.javabaas</groupId>
88
<artifactId>javasdk</artifactId>
9-
<version>2.0.10</version>
9+
<version>2.0.11</version>
1010
<packaging>jar</packaging>
1111
<name>JavaBaas_SDK_Java</name>
1212
<description>JavaBaas_SDK_Java</description>

src/main/java/com/javabaas/javasdk/JB.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.javabaas.javasdk.callback.JBStatusCallback;
55
import com.javabaas.javasdk.cloud.*;
66

7-
import java.util.Date;
87
import java.util.HashMap;
98
import java.util.LinkedHashMap;
109
import java.util.Map;
@@ -157,7 +156,6 @@ private static HookResponse onHookRequest(HookRequest hookRequest) throws Throwa
157156
return listener.onHook(hookRequest);
158157
}
159158

160-
161159
private static void initConfig(String remote, String appId, String key, String masterKey, String adminKey, String plat) {
162160
if (!JBUtils.isEmpty(remote)) {
163161
INSTANCE.config.remote = remote.endsWith("/") ? remote : remote + "/";
@@ -187,7 +185,7 @@ private static void removeAppConfig() {
187185
}
188186

189187
private static void updateAdjustTime() {
190-
final long timestamp = new Date().getTime();
188+
final long timestamp = System.currentTimeMillis();
191189
JBStatus.getStatusInBackground(new JBStatusCallback() {
192190
@Override
193191
public void done(boolean success, Map<String, Object> status, JBException e) {

src/main/java/com/javabaas/javasdk/JBHttpClient.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import okhttp3.*;
66

77
import java.io.IOException;
8-
import java.util.Date;
98
import java.util.UUID;
109
import java.util.concurrent.TimeUnit;
1110

@@ -111,7 +110,7 @@ private Request.Builder getRequestBuilder() throws JBException {
111110
if (!JB.getInstance().getConfig().finishInit) {
112111
throw new JBException(JBCode.INTERNAL_ERROR.getCode(), "JBConfig未初始化");
113112
}
114-
long timestamp = new Date().getTime();
113+
long timestamp = System.currentTimeMillis();
115114
String timestampStr = String.valueOf(timestamp - JB.getInstance().getConfig().adjustTime);
116115
String nonce = UUID.randomUUID().toString().replace("-", "");
117116

src/main/java/com/javabaas/javasdk/JBQuery.java

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
public class JBQuery<T extends JBObject> {
1313
private String className;
14+
private Class<T> clazz;
1415
private String whereSting;
1516
private Boolean isRunning;
1617
JBQueryConditions conditions;
@@ -33,6 +34,14 @@ public JBQuery<T> setClassName(String className) {
3334
return this;
3435
}
3536

37+
public Class<T> getClazz() {
38+
return clazz;
39+
}
40+
41+
public void setClazz(Class<T> clazz) {
42+
this.clazz = clazz;
43+
}
44+
3645
/**
3746
* 查询当前查询是否进行中
3847
*
@@ -119,8 +128,13 @@ public Map<String, List<JBQueryOperation>> getWhere() {
119128
}
120129

121130
public JBQuery(String className) {
131+
this(className, null);
132+
}
133+
134+
JBQuery(String className, Class<T> clazz) {
122135
JBUtils.checkClassName(className);
123136
this.className = className;
137+
this.clazz = clazz;
124138
this.conditions = new JBQueryConditions();
125139
}
126140

@@ -612,13 +626,18 @@ public void onSuccess(JBResult result) {
612626
if (callback == null) {
613627
return;
614628
}
615-
List<T> list = processResults(result.getData());
616-
if (list.size() > 0) {
617-
T o = list.get(0);
618-
callback.done(true, o, null);
619-
} else {
620-
callback.done(false, null, new JBException(JBCode.OBJECT_NOT_EXIST));
629+
try {
630+
List<T> list = processResults(result.getData());
631+
if (list.size() > 0) {
632+
T o = list.get(0);
633+
callback.done(true, o, null);
634+
} else {
635+
callback.done(false, null, new JBException(JBCode.OBJECT_NOT_EXIST));
636+
}
637+
} catch (Exception e) {
638+
callback.done(false, null, new JBException(JBCode.INTERNAL_JSON_ERROR));
621639
}
640+
622641
}
623642

624643
@Override
@@ -670,9 +689,15 @@ private void findFromJavaBaas(final boolean sync, final JBFindCallBack callback)
670689
JBHttpClient.INSTANCE().sendRequest(path, JBHttpMethod.POST, null, getParameters(), sync, new JBObjectCallback() {
671690
@Override
672691
public void onSuccess(JBResult result) {
673-
List<T> list = processResults(result.getData());
674-
if (callback != null) {
675-
callback.done(true, list, null);
692+
try {
693+
List<T> list = processResults(result.getData());
694+
if (callback != null) {
695+
callback.done(true, list, null);
696+
}
697+
} catch (Exception e) {
698+
if (callback != null) {
699+
callback.done(false, null, new JBException(JBCode.INTERNAL_JSON_ERROR));
700+
}
676701
}
677702
}
678703

@@ -798,7 +823,7 @@ protected Map<String, String> assembleParameters() {
798823
return conditions.assembleParameters();
799824
}
800825

801-
protected List<T> processResults(Map<String, Object> map) {
826+
protected List<T> processResults(Map<String, Object> map) throws Exception {
802827
if (map == null || map.get("result") == null) {
803828
return Collections.emptyList();
804829
}
@@ -818,7 +843,12 @@ protected List<T> processResults(Map<String, Object> map) {
818843
return Collections.emptyList();
819844
}
820845
for (Map<String, Object> object : list) {
821-
JBObject jbObject = new JBObject(className);
846+
JBObject jbObject;
847+
if (clazz != null) {
848+
jbObject = clazz.newInstance();
849+
} else {
850+
jbObject = new JBObject(className);
851+
}
822852
JBUtils.copyPropertiesFromMapToJBObject(jbObject, object);
823853
result.add((T) jbObject);
824854
}

src/main/java/com/javabaas/javasdk/JBUser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public static String userClassName() {
8686
*
8787
*/
8888
public static JBQuery<JBUser> getQuery() {
89-
return new JBQuery<>(JBUser.userClassName());
89+
return new JBQuery<>(JBUser.userClassName(), JBUser.class);
9090
}
9191

9292
/**

0 commit comments

Comments
 (0)