Javaエラー:Cannot make a static reference to the non-static method getCurrentSession()

プログラミング
スポンサーリンク

Javaで出てきたエラーの解決策。

スポンサーリンク

クラスメソッドとインスタンスメソッド

クラスに紐づけられたメソッドのことをクラスメソッド といいます。

インスタンスメソッドは、インスタンスに紐づけられたメソッドのことをいいます。インスタンスごとで異なる処理をおこなう時に使用します。

 

 

簡単にはクラスメソッドは、 static が付いたメソッドです。

インスタンスメソッドは、staticが付いていないメソッドです。

 

クラスメソッドは、

クラス名.メソッド名 で呼び出します。

インスタンスメソッドは、インスタンスをnewで作成してから呼び出します。

 

Cannot make a static reference to the non-static method とは

Javaのmainメソッドは、static が付いているのでクラスメソッドです。

クラスメソッドからは他のクラスメソッドか、インスタンスを指定したインスタンスメソッド呼出ししかできません。

 

 

funcというstaticが付いていないインスタンスメソッドがあった場合とします。

インスタンスメソッドを呼び出したいのであれば、

test mytest = new test();

mytest.func(n);

のようにしてインスタンスを指定する必要があります。

あるいは、funcメソッドにstaticを書き加えてクラスメソッドにする必要があります。

 

 

以下に質問の回答がありました。

Since the main method is static and the fxn() method is not, you can't call the method without first creating a Two object. So either you change the method to:

https://stackoverflow.com/questions/11491750/cannot-make-a-static-reference-to-the-non-static-method-fxnint-from-the-type-t

 

https://stackoverflow.com/questions/21839182/cannot-make-a-static-reference-to-a-non-static-method

 

https://stackoverflow.com/questions/30635448/cannot-make-a-static-reference-to-the-non-static-method-getsessionfactory-from

 

 

コメント