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

Rav*_*ven 3 java return return-type void

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

class{
variabletype a=expression();
  public int method(){
  -----}
}
Run Code Online (Sandbox Code Playgroud)

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

Era*_*ran 6

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

class YourClass
{

    {
        expression ();
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

这将expression()在您的类的每个构造函数的主体之前执行.expression()返回内容或void返回类型无关紧要.

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

顺便说一下,你的Here expression() is evaluated before start of any methods (except constructor) of the class.假设不准确.实例变量在构造函数体执行之前初始化(但在超类构造函数之后).因此expression(),在类的构造函数的主体之前执行.