"此处不允许''void'类型"错误(Java)

Dav*_*vid 15 java

当我尝试编译时:

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)) ;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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

我真的不知道如何开始询问这个问题而不是问:

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

Jus*_*ier 14

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

printPoint (blank); 
Run Code Online (Sandbox Code Playgroud)


And*_*are 13

您正在尝试打印其结果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) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

或这个:

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)) ;
    }
}
Run Code Online (Sandbox Code Playgroud)