关于是否可以将类中某个类的实例设置为null和可以使一个类中定义的成员变量的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android–是否可以在onPostExecute()中将Asy
关于是否可以将类中某个类的实例设置为null和可以使一个类中定义的成员变量的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?、c – 检查某个类是否可以转换为另一个类、c# – 是否可以将类中的扩展方法限制为特定类型?、Java的NullPointerException是否可以更改为报告哪个变量为null?等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- 是否可以将类中某个类的实例设置为null(可以使一个类中定义的成员变量)
- android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?
- c – 检查某个类是否可以转换为另一个类
- c# – 是否可以将类中的扩展方法限制为特定类型?
- Java的NullPointerException是否可以更改为报告哪个变量为null?
是否可以将类中某个类的实例设置为null(可以使一个类中定义的成员变量)
是否可以将类中某个类的实例设置为null。例如,我可以做这样的事情吗
int main{ //Create a new test object Test test = new Test(); //Delete that object. This method should set the object "test" to null, //thus allowing it to be called by the garbage collector. test.delete();}public class Test{ public delete(){ this = null; }}
我已经尝试过了,但是行不通。使用“ this = null”,我得到一个错误,即左侧必须是一个变量。有没有办法实现类似的目标?
答案1
小编典典一个对象的实例不知道哪些引用可能在引用它,因此该对象中的代码无法使这些引用无效。您要的是不可能的(*)。
- 至少没有添加一堆脚手架来跟踪所有参考,并且以某种方式通知其所有者应该将它们无效-绝不是“为了方便”。
android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?
我有一个Activity类,它有一个引用AsyncTask实例的属性,这个AsyncTask也有一个对这个Activity的引用.
从AsyncTask的onPostExecute()我想将Activity的引用设置为AsyncTask为null(通过将AsyncTask实例引用到Activity的引用).这是一个好习惯吗?
我在该方法的最后一行代码中执行此操作,因为我实际上是在向垃圾收集器说它可以删除该实例,因为它不再被任何其他对象(Activity)引用.这是正确的,还是我错了?
编辑:下面我的回答恢复了我使用的最终解决方案.
谢谢!
解决方法:
为什么你需要首先保持对AsyncTask的引用?
什么时候不再需要参考?在任务完成之前会发生什么需要您持有对活动的引用?
我所说的是,你可以在没有引用的情况下启动异步任务,这样你的问题就会消失.但如果由于某种原因你需要参考,那么通过更多地解释你的具体情况,我们可以建议一个更好的解决方案.
编辑
你主要关注的不是泄漏活动,而不是相反.如果你真的想要正确地清理所有引用,我会在异步任务上提供一个附加/分离方法,以便活动可以在nessecary时从异步任务中附加和分离自己,并且还提供一个使异步任务无效的活动方法如果活动仍然附加,则从您的异步任务中重新调用并调用它.不要直接做.异步任务不应直接修改活动.如果可能的话甚至将异步任务移动到新文件中,不要将其作为活动的内部类,这会导致泄漏.
c – 检查某个类是否可以转换为另一个类
template<class T,class U> T foo (U a);
如何检查是否可以将类U的对象类型转换为对象T.
那就是如果U类具有成员函数
operator T(); // Whatever T maybe
或者类T有一个构造函数
T(U& a); //ie constructs object with the help of the variable of type U
解决方法
template<class T,class U> T foo (U a) { if (std::is_convertible_v<U,T>) { /*...*/ } // ... }
请注意,从C 17开始添加is_convertible_v,如果编译器仍然不支持它,则可以使用std :: is_convertible< U,T> :: value.
c# – 是否可以将类中的扩展方法限制为特定类型?
它仍然有效,因为编译器通过查看导入的命名空间来处理解决方案.但是当涉及重叠类型时,它很烦人并且不易维护.
是否可以约束可以在特定xxExt类中编写的类型扩展?循环手动规则不能很好地工作……如果不是编译器级别限制,可能就像静态代码分析一样?
代码(我想在这个类中限制IsActiveRisk方法).
public static class TradeDataExt{ public static bool IsActiveTrade(this TradeData TradeData){...} public static bool IsActiveRisk(this RiskData riskData) {...} }
这更像是一个“理想的”功能,不确定是否可能.
意见/建议会有所帮助.
解决方法
总结
以上是小编为你收集整理的c# – 是否可以将类中的扩展方法限制为特定类型?全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Java的NullPointerException是否可以更改为报告哪个变量为null?
在NullPointerException
Java中,似乎只报告,它发生在一个特定的代码行。如果一行代码中使用了多个变量,是否可以更改该异常以声明哪个变量为null?
今天关于是否可以将类中某个类的实例设置为null和可以使一个类中定义的成员变量的分享就到这里,希望大家有所收获,若想了解更多关于android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?、c – 检查某个类是否可以转换为另一个类、c# – 是否可以将类中的扩展方法限制为特定类型?、Java的NullPointerException是否可以更改为报告哪个变量为null?等相关知识,可以在本站进行查询。
本文标签: