微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于处理Java中void方法返回的虚拟变量?

当我需要在当前对象的方法之外运行表达式(例如外部方法)时,我为该对象类声明一个字段变量,并将该表达式的返回值赋给该变量.如下,

class{
variabletype a=expression();
  public int method(){
  -----}
}

这里在开始任何类的方法之前计算expression().除非返回类型的expression()为void,否则它完美地工作.即使表达式()没有返回任何内容,我正在寻找的方法也是如此.更具体地说,我需要一种虚拟变量来执行与上面显示代码的第2行相同的操作,即使expression()没有返回任何内容.注意:我无权访问该类的构造函数.

解决方法

您可以使用实例初始化程序块:

class YourClass
{

    {
        expression ();
    }

    ...
}

这将在类的每个构造函数的主体之前执行expression(). expression()是返回某个东西,还是具有void返回类型并不重要.

您不必引入任何虚拟实例变量.

顺便说一下,你的Here表达式()是在类的任何方法(构造函数除外)开始之前计算的.假设不准确.实例变量在构造函数体执行之前初始化(但在超类构造函数之后).因此,expression()在类的构造函数的主体之前执行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐