Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解释一个解决方案:不能从静态上下文引用非静态方法isPrime(int)_Java - Fatal编程技术网

Java 解释一个解决方案:不能从静态上下文引用非静态方法isPrime(int)

Java 解释一个解决方案:不能从静态上下文引用非静态方法isPrime(int),java,Java,我的计划是: import java.io.*; public class PrimeGenerator { public int isPrime(int x) { int flag=1; for(int i=2;i<x;i++) { if(x%i==0) flag=0; } return flag; } public static void main(String args[]

我的计划是:

import java.io.*;
public class PrimeGenerator
{

 public int isPrime(int x)
 {
    int flag=1;
    for(int i=2;i<x;i++)
        {
            if(x%i==0)
            flag=0;
        }
    return flag;
}

public static void main(String args[])throws IOException
{
    DataInputStream in =new DataInputStream(System.in);
    int t,p1,p2;
    t=Integer.parseInt(in.readLine());
    for(int i=1;i<=t;i++)
    {
        p1=Integer.parseInt(in.readLine());
        p2=Integer.parseInt(in.readLine());
        for(int j=p1;j<=p2;j++)
        {
            if(isPrime(j)==1)
            {
                System.out.println(j);
            }
        }
        System.out.println("\n");
    }
 }
}
import java.io.*;
公共类素数生成器
{
公共int iPrime(int x)
{
int标志=1;

for(int i=2;i
main
是一个静态方法,而
isPrime
被声明为一个实例方法,因此您不能像错误消息所建议的那样从静态上下文调用它

由于
isPrime
是上下文无关的,您只需将其声明为
static

public static boolean isPrime(int x)

另外,
isPrime
应该返回一个
boolean
,而不是
int

使isPrime成为静态的,正如错误消息所提示的不要对我们大喊大叫一样,伙计。:)google
不能从静态上下文引用
的可能副本。另外,isPrime应该使用一个从2到sqrt(x)的循环。