Impossible de faire une référence statique à la méthode non statique
Cela signifie que pour invoquer cette méthode que vous essayez de, vous avez besoin d'une référence à une instance de cette classe. Voici un exemple illustrant la différence:
public class Foo{
public static int staticVariable = 5;
public static void methodStatic(){}
public void nonStaticMethod(){}
}
est ici comment vous pouvez les utiliser:
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
Pour ce qui concernent les variables statiques, ce sont des variables qui ne font pas partie d'une seule instance d'une classe , mais sont partagés entre toutes les différentes instances de la même classe:
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
(S'il vous plaît, regardez l'exemple ci-dessus juste pour comprendre le concept de ce une variable statique est. Vous obtiendrez l'avertissement "accéder à un champ statique d'une manière non statique" car ce n'est pas un moyen correct d'accéder à ces variables)
OK, donc je peux utiliser le code ci-dessus si le code est dedans, disons, et activité? Mais mon code ne l'est pas. Y a-t-il un moyen d'accéder à la ressource brute simplement à partir d'une classe normale? Merci! –
Si vous faites référence à mon code, alors oui. Et je ne pense pas, il pourrait y avoir mais pour autant que je sache, il n'y a aucun moyen d'accéder aux ressources sans un objet contextuel. Mais vous pouvez obtenir les ressources lors de la création de votre classe Document et le transmettre. –
Super, je vais essayer ça! –