我一直试图通过ORMLite的HelloAndroid示例,但无法成功编译.我遇到了DatabaseHelper类的问题.具体方法是:getDao()
/**
* Returns the Database Access Object (DAO) for our SimpleData class.
* It will create it or return the cached value.
*/
public Dao<SimpleData, Integer> getDao() throws SQLException {
if (simpleDao == null) {
simpleDao = getDao(SimpleData.class);
}
return simpleDao;
}
Run Code Online (Sandbox Code Playgroud)
这是我收到的编译时错误:
D的类型参数无法确定; 对于带有上限的类型变量D,没有唯一的最大实例com.j256.ormlite.dao.Dao,com.j256.ormlite.dao.Dao
我和同事正在讨论IEnumerable在重新初始化源列表之后查询返回旧结果集的情况.在执行应用程序的某个地方,列表被设置为null并重新填充新值.查询本身从未重新定义,并继续返回旧结果.事实上,如果源列表仍然存在则无关紧要null; 旧结果仍然归还.
以下是一些单元测试,用于演示我们所看到的内容:
[Test]
public void QueryResultsBasedOnCurrentListEvenAfterUpdate()
{
var list = new List<string> { "Two", "Three" };
var query = list.Where(x => x.Length > 3);
var result1 = query.ToList();
list.Clear();
list.AddRange(new List<string> { "Four", "Five", "One" });
//Correctly gets an updated result set
var result2 = query.ToList();
//PASS
CollectionAssert.AreEquivalent(new List<string> { "Three" }, result1);
//PASS
CollectionAssert.AreEquivalent(new List<string> { "Four", "Five" }, result2);
}
[Test]
public void QueryResultsBasedOnCurrentListEvenAfterSetToNullAndReInstantiated()
{
var list = new List<string> { "Two", "Three" …Run Code Online (Sandbox Code Playgroud)