は非静的メソッド
これは、あなたがしようとしているメソッドを呼び出すために、あなたはそのクラスのインスタンスへの参照が必要であることを意味をstatic参照できません。 ここでの違いを示す例です:
public class Foo{
public static int staticVariable = 5;
public static void methodStatic(){}
public void nonStaticMethod(){}
}
はここにあなたがそれらを使用することができます方法は次のとおりです。静的変数に関係する何のため
Foo.nonStaticMethod(); //can call static method referring to the class itself without having an instance
Foo f = new Foo();
f.nonStaticMethod(); //you need an instance of a Foo class in order to call a non-static method
、これらは、クラスの単一のインスタンスに属していない変数です同じクラスのすべての異なるインスタンス間で共有されます:
Foo a = new Foo();
Foo b = new Foo();
System.out.println(a.staticVariable); //print 5
System.out.println(b.staticVariable); //print 5
a.staticVariable = 10;
System.out.println(b.staticVariable); //print 10
(上記の例を見てください。静的変数はです。これらの変数にアクセスする適切な方法ではないため、「非静的な方法で静的フィールドにアクセスする」という警告が表示されます。
コードが上記のような意味で使用されていれば、上記のコードを使用できますか?しかし、私のコードはそうではありません。単純なクラスから生のリソースにアクセスする方法はありますか?ありがとう! –
あなたが私のコードを参照しているなら、はい。そして私はそうは思わない、私が知る限り、コンテキストオブジェクトなしでリソースにアクセスする方法はない。しかし、Documentクラスを作成するときにリソースを取得し、それを渡すことができます。 –
偉大な私はそれを試みる! –