缺少Void方法的返回值?

时间:2012-12-06 17:56:42

标签: java generics

以下代码给出了编译时错误:缺少返回值和缺少return语句,我将为 Void Type 返回什么值?

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>()
{
    @Override
    protected Void doInBackground() throws Exception
    {
        // some code
        if (something)
        {
            return;
        }
    }
 }

2 个答案:

答案 0 :(得分:27)

Void不是void,如果您不想返回任何内容,请将其更改为无效类型。

Void是一个类,void是类型。

/**
 * The {@code Void} class is an uninstantiable placeholder class to hold a
 * reference to the {@code Class} object representing the Java keyword
 * void.
 *
 * @author  unascribed
 * @since   JDK1.1
 */

如果您需要Void,则需要在结尾处添加return语句。

示例:

protected Void doInBackground() throws Exception
    {
        // some code
        if (something)
        {
            return null;
        }
       return null;
    }

答案 1 :(得分:1)

检查一下。它要求使用captital V返回Void而不是简单的void

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>()
            {
                @Override
                protected Void doInBackground() throws Exception
                {
                // my code here
                   return null;
                }
             };
}