Solution for :Cannot make a static reference to the non-static method
1439 ワード
最近javaを勉强していて、javaの菜鸟と以前のC言语の思惟がもたらした影响として、javaをする时よくいくつかの比较的低いレベルの间违いを犯して、これらの低いレベルの间违いを明らかにするのはjavaを理解するのにとても良い助けがあります.だから記録しておきます.
Cannot make a static reference to the non-static methodという誤り推定が最も一般的で、なぜこのような状況なのか不思議に思った.
たとえば、次のjavaのテストウィジェットを書いて、文字列が数値であるかどうかを確認します.
You can't make a static reference to the non-static method, so you can change the un-static method to a static method or you need to create an object using new operator and call the method by object.method().
stackoverflow上explaination:
http://stackoverflow.com/questions/23860661/cannot-make-a-static-reference-to-the-non-static-method
Cannot make a static reference to the non-static methodという誤り推定が最も一般的で、なぜこのような状況なのか不思議に思った.
たとえば、次のjavaのテストウィジェットを書いて、文字列が数値であるかどうかを確認します.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestStrIsNum {
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
public static void main(String[] argv)
{
String a =new String("-1000");
//if (isNumeric(a)) error:Cannot make a static reference to the non-static method
TestStrIsNum test = new TestStrIsNum();
if (test.isNumeric(a))
System.out.println("a = -1000 is a number");
}
}
Analysis and soultion: You can't make a static reference to the non-static method, so you can change the un-static method to a static method or you need to create an object using new operator and call the method by object.method().
stackoverflow上explaination:
http://stackoverflow.com/questions/23860661/cannot-make-a-static-reference-to-the-non-static-method