我有一个Android应用程序(java),当使用android.provider.Contacts类中的以下代码与Android 1.6
SDK一起编译时,可以正常工作:
Uri baseUri = Contacts.Phones.CONTENT_FILTER_URL;
2.0
SDK发布后,android.provider.Contacts类被弃用,并替换为android.provider.ContactsContract。为了使一个程序可以同时在1.6和2.0上运行,我在1.6下进行了以下更改:
Uri baseUri = Contacts.Phones.CONTENT_FILTER_URL;
…
try {
Class<?> c = Class.forName("android.provider.ContactsContract$PhoneLookup");
baseUri = (Uri) c.getField("CONTENT_FILTER_URI").get(baseUri);
}
catch (Exception e) {
}
由于我是在1.6以下版本进行编译的,因此无法导入android.provider.ContactsContract,因为它是仅2.0已知的类。这被认为是反思,程度如何?
新增评论: 在阅读了“
Java编程语言”的“反射”一章(我应该首先做完)之后,我现在基本上了解了可以使用反射做什么,但是对反射的简洁定义并不容易。您的回答有助于弄清是什么提示了我的问题-
一旦对一个类进行了反射,并使用反射创建了该类的实例,您就可以与该实例进行交互,就好像该类是新的一样。
这是我对简洁定义的微不足道的尝试,该定义远非完美,我相信随着我了解更多,我将需要进行修订:
反射是使用java.lang.reflect或Class或Package类中包含的类对象进行的间接,动态查询,操作或html" target="_blank">调用,这些对象最初需要使用完全限定的字符串名称来访问该类。
我相信这就是Java反射的定义(有关多版本兼容性的Android反射更多信息)。我不确定“到什么程度”是什么意思;就是这样
编译器必须为constexpr的不同路径生成多个函数,这取决于函数的调用方式。所以也许它在使用过载分辨率。 被接受的建议没有提到“sfinae”或“过载分辨率”。 所以我很好奇这两个概念是否适用于“constexpr if”。
问题内容: 我是Go的新手,在浏览其他一些线程时遇到了以下代码行: 含义是什么?它是否指定将在if条件中分配某些内容(因为err似乎正在发生这种情况)?我在Wiki上找不到这种语法的示例,并且我很好奇它的用途。 问题答案: 因为返回两个值,所以如果需要它们中的任何一个,都必须在某个地方接收这些值。该是一个占位符,基本的意思是“我不关心这个特殊的返回值。” 在这里,我们只关心检查错误,而无需对实际的
问题内容: 我在这里阅读了问题:将新值分配给方法参数是否有问题?。但是我不清楚是否做类似的事情: 要么: 这基本上只是为了避免声明一个新的局部变量,这值得吗?这被视为不好的做法吗? 问题答案: 这是一个坏习惯。您将很难找到牺牲可读性值得的方案。对于不了解Java的“按价值传递”策略的人来说,这尤其令人困惑,可悲的是很多人。
在我正在学习的一门算法课程中,据说深度优先搜索(DFS)比广度优先搜索(BFS)更节省空间。 为什么呢? 虽然它们基本上都在做相同的事情,但在DFS中,我们正在堆叠当前节点的后续节点,而在BFS中,我们正在将后续节点排队。
考虑以下程序: (编译器资源管理器) GCC和Clang的各种版本都可以接受它,但MSVC不能接受它,因为MSVC编译失败,出现错误消息 第一条错误消息向我暗示了ODR违规--但如果这个程序是格式不良的NDR,我需要帮助理解为什么会这样。我已经检查了标准草案中的temp.over.link,但我不相信我对它的解释是正确的。根据我的理解,程序是可以的,因为这些函数模板有不同的签名。 在不太可能的情况
总的来说,我对OpenCV和图像处理相当陌生。我正在研究背景减法,以方便运动跟踪(人计数)。查看关于背景减法的openCV文档,GMG给出了相当不错的结果。同样,当看一个视频比较的方法,我觉得GMG给出了最好的结果,至少对我来说是这样。 我安装了opencv的最新版本,以便与python3一起使用: 有趣的是,在我自己的测试中,和的当前(3.0.0-dev)版本比我以前在OpenCv2中测试的版本