是什么导致“此处不允许‘无效’类型”错误

新手上路,请多包涵

当我尝试编译它时:

 import java.awt.* ;

    class obj
    {
        public static void printPoint (Point p)
        {
            System.out.println ("(" + p.x + ", " + p.y + ")");
        }
        public static void main (String[]arg)
        {
            Point blank = new Point (3,4) ;
            System.out.println (printPoint (blank)) ;
        }
    }

我收到此错误:

 obj.java:12: 'void' type not allowed here
        System.out.println (printPoint (blank)) ;
                                               ^
1 error

我真的不知道如何开始问这个问题,除了问:

  • 这里出了什么问题?
  • 此错误消息是什么意思?

原文由 David 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 435
2 个回答

如果方法返回 void 则没有可打印的内容,因此出现此错误消息。由于 printPoint 已经将数据打印到控制台,您应该直接调用它:

 printPoint (blank);

原文由 Justin Ethier 发布,翻译遵循 CC BY-SA 2.5 许可协议

您正在尝试打印 printPoint 的结果,它不返回任何内容。您将需要更改代码以执行以下两项操作之一:

 class obj
{
    public static void printPoint (Point p)
    {
        System.out.println ("(" + p.x + ", " + p.y + ")");
    }
    public static void main (String[]arg)
    {
        Point blank = new Point (3,4) ;
        printPoint (blank) ;
    }
}

或这个:

 class obj
{
    public static String printPoint (Point p)
    {
        return "(" + p.x + ", " + p.y + ")";
    }
    public static void main (String[]arg)
    {
        Point blank = new Point (3,4) ;
        System.out.println (printPoint (blank)) ;
    }
}

原文由 Andrew Hare 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题