GVKun编程网logo

是否可以将类中某个类的实例设置为null(可以使一个类中定义的成员变量)

7

关于是否可以将类中某个类的实例设置为null和可以使一个类中定义的成员变量的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android–是否可以在onPostExecute()中将Asy

关于是否可以将类中某个类的实例设置为null可以使一个类中定义的成员变量的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?、c – 检查某个类是否可以转换为另一个类、c# – 是否可以将类中的扩展方法限制为特定类型?、Java的NullPointerException是否可以更改为报告哪个变量为null?等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

是否可以将类中某个类的实例设置为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?

android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?

我有一个Activity类,它有一个引用AsyncTask实例的属性,这个AsyncTask也有一个对这个Activity的引用.

从AsyncTask的onPostExecute()我想将Activity的引用设置为AsyncTask为null(通过将AsyncTask实例引用到Activity的引用).这是一个好习惯吗?

我在该方法的最后一行代码中执行此操作,因为我实际上是在向垃圾收集器说它可以删除该实例,因为它不再被任何其他对象(Activity)引用.这是正确的,还是我错了?

编辑:下面我的回答恢复了我使用的最终解决方案.

谢谢!

解决方法:

为什么你需要首先保持对AsyncTask的引用?

什么时候不再需要参考?在任务完成之前会发生什么需要您持有对活动的引用?

我所说的是,你可以在没有引用的情况下启动异步任务,这样你的问题就会消失.但如果由于某种原因你需要参考,那么通过更多地解释你的具体情况,我们可以建议一个更好的解决方案.

编辑

你主要关注的不是泄漏活动,而不是相反.如果你真的想要正确地清理所有引用,我会在异步任务上提供一个附加/分离方法,以便活动可以在nessecary时从异步任务中附加和分离自己,并且还提供一个使异步任务无效的活动方法如果活动仍然附加,则从您的异步任务中重新调用并调用它.不要直接做.异步任务不应直接修改活动.如果可能的话甚至将异步任务移动到新文件中,不要将其作为活动的内部类,这会导致泄漏.

c – 检查某个类是否可以转换为另一个类

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

解决方法

您可以使用 std::is_convertible(自C 11起):

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# – 是否可以将类中的扩展方法限制为特定类型?

c# – 是否可以将类中的扩展方法限制为特定类型?

这种要求是由同伴开发人员将不同类型的扩展方法混合到一个xxxExt类中而引起的.
它仍然有效,因为编译器通过查看导入的命名空间来处理解决方案.但是当涉及重叠类型时,它很烦人并且不易维护.

是否可以约束可以在特定xxExt类中编写的类型扩展?循环手动规则不能很好地工作……如果不是编译器级别限制,可能就像静态代码分析一样?

代码(我想在这个类中限制IsActiveRisk方法).

public static class TradeDataExt{
     public static bool IsActiveTrade(this TradeData TradeData){...}

     public static bool IsActiveRisk(this RiskData riskData) {...}


}

这更像是一个“理想的”功能,不确定是否可能.
意见/建议会有所帮助.

解决方法

首先,在我看来你写了你的例子并忘记了扩展方法中更重要的关键字,你在参数之前错过了关键字“this”!

总结

以上是小编为你收集整理的c# – 是否可以将类中的扩展方法限制为特定类型?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Java的NullPointerException是否可以更改为报告哪个变量为null?

Java的NullPointerException是否可以更改为报告哪个变量为null?

NullPointerExceptionJava中,似乎只报告,它发生在一个特定的代码行。如果一行代码中使用了多个变量,是否可以更改该异常以声明哪个变量为null?

今天关于是否可以将类中某个类的实例设置为null可以使一个类中定义的成员变量的分享就到这里,希望大家有所收获,若想了解更多关于android – 是否可以在onPostExecute()中将AsyncTask的引用设置为null?、c – 检查某个类是否可以转换为另一个类、c# – 是否可以将类中的扩展方法限制为特定类型?、Java的NullPointerException是否可以更改为报告哪个变量为null?等相关知识,可以在本站进行查询。

本文标签: