我有一个项目,我正在通过GSON和Volley阅读一些json。我想把我的数据保存在数据库中,我希望Realm是一个好的解决方案。我选择了我的第一个类,它有七个成员变量,所有的Strings和int,并让它扩展RealmObject,并将其中一个int确定为主键。它编译得很好,但是当它运行时,我在日志中得到大量的输出,最终应用程序在显示主要活动之前就崩溃了。GSON似乎不喜欢解析扩展了RealmObject的类。
所以我做了一些搜索,从Realm网站上找到了这篇文章,但它是针对旧版本的Realm(我目前使用的是0.87)
https://realm.io/docs/java/0.77.0/#other-图书馆
它提供了一个解决方案,但是我不能让这个解决方案为我工作,因为他们解析他们的GSON的方式和我不同。也许我们可以通过帮助我来解决这个问题,但是我想知道这个解决方案是否有效,因为它是旧版本的??总之,我是这样解析我的GSON的:
private void DisplayData(int count, final ArrayList<TwoLineSummaryCardDataObject> tlscdo,
final TwoLineSummaryViewAdapter lsva) {
final String url = "https://mydata.com/mydata";
final GsonRequest gsonRequest =
new GsonRequest(url, MyData.class, null, new Response.Listener<MyData>() {
@Override
public void onResponse(MyData myData) {
tlscdo.clear();
// Disable Realm stuff for now
//Realm realm = Realm.getDefaultInstance();
//realm.beginTransaction();
for (int i = 0; i < myData.getData().size(); i++) {
tlscdo.add(new TwoLineSummaryCardDataObject(myData.getData().get(i)));
//realm.copyToRealmOrUpdate(myData.getData().get(i));
}
//realm.commitTransaction();
lsva.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
if(volleyError != null) Log.e("MainActivity", volleyError.getMessage());
Toast.makeText(MainActivity.this, "Error in Volley", Toast.LENGTH_SHORT).show();
}
}
);
// Add the request to the queue
Volley.newRequestQueue(this).add(gsonRequest);
VolleyHelper.getInstance(getApplicationContext()).addToRequestQueue(gsonRequest);
1)如何更新我的代码,以便我可以使用GsonBuilder,如Realm javadoc页面上的示例?
2) 我是不是在浪费时间,因为这些代码是为旧版本的Realm编写的,而现在有不同的/更好的/没有办法让GSON和Realm一起玩了?
编辑:需要查看MyData类。其实很简单:
public class MyData {
@PrimaryKey
private Integer id;
private String name;
private String abbrev;
private String countryCode;
private Integer type;
private String infoURL;
private String wikiURL;
// followed by a bunch of getters and setters
}
要澄清的是,它可以这样运行。如果我添加“extends RealmObject”,它仍然会编译,但在运行时,它只会发出各种消息,然后应用程序最终会在几秒钟后崩溃(我想是内存不足),而没有显示活动。
编辑2,根据要求添加日志。
当我用“扩展RealmObject”运行它时,这就是logcat。
http://pastebin.com/raw/1VZq8bQD
如果我把“extends RealmObject”去掉,它运行得很好。
1)如何更新我的代码,以便我可以使用GsonBuilder,如Realm javadoc页面上的示例?
您可以创建一个扩展请求的新类
mGson = new Gson();
与代码写在realm.io的网站。
2) 我是不是在浪费时间,因为这些代码是为旧版本的Realm编写的,而现在有不同的/更好的/没有办法让GSON和Realm一起玩了?
在撰写此答案时,realm的最新版本是0.87.1,使用GSON的方法是相同的。所以这仍然是正确的方法。
我已经成功地建立了TailwindCSS上Gridsome以下说明:https://gridsome.org/docs/assets-css/#tailwind 但是,这些说明并没有提到如何设置autoprefixer。因此,我自己尝试了一下,如下所示: npm安装自动刷新器 修改了文件(请参见下面的修改代码,其中包含我所更改内容的注释) 运行 将类添加到以查看是否添加了任何供应商前缀 结果。。。
我正在试验把杰克逊和龙目岛结合起来。这些是我的课: 这些是我添加到类spth中的JAR: > 龙目岛:https://projectlombok.org/downloads/lombok.jar(1.16.10version) 此外,Netbeans项目被配置为“保存时不编译”、“生成调试信息”、“报告不推荐使用的API”、“跟踪java依赖项”、“Activacte注释处理”和“编辑器中的Act
在KeyCloak中可以让一个领域的用户管理另一个领域吗?我的目标是拥有两个领域--adminRealm和UserRalm。在adminRealm中应该是用户,他们将能够登录到我们的管理应用程序,他们可以通过Keycloak rest api创建“普通用户”,这将被放置到UserRealm中。 目前我的解决方案工作在一个领域,在那里我有管理用户,可以登录到我的管理应用程序,在那里他可以在相同的领域
如何让jersey和@webservlet协同工作? 泽西资源配置: 在resourceConfig中注册的jersey资源: web servlet 案例1:访问此http://localhost:8088/ResponseFilterweb/login 控制台日志: 访问这个http://localhost:8088/ResponseFilterweb/hello 案例2:更改应用程序配置资源
我在官方留档中找不到任何信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significanttext-aggregation.html 问题是,我试图在应用了带状图过滤器/分析器的“多字段”()上聚合重要术语: 我得到了空桶: 多字段定义:
因此,如果我不能重写字符串作为它的最终结果(因此阻止我重写它的compareTo()方法来调用compareToIgnoreCase()),那么还有其他方法可以实现吗? 任何帮助都是非常感谢的。