Vous semblez être des valeurs statiques confusion avec les valeurs d'instance.
est statique, mais il n'est pas initialisé dans un bloc d'initialisation statique. Il est seulement initialisé lorsque vous créez une instance de test
(via le constructeur pour cette instance). Notez également qu'il sera ré-initialisé chaque fois que vous créerez une nouvelle instance de test
, ce qui va probablement causer des bugs très étranges pour vous.
Pour x
à initialiser comme une valeur statique pour la classe, l'ajouter à un bloc d'initialisation statique:
class test
{
public static myclass x;
static
{
x=new myclass();
}
}
De cette façon x
ne doit être initialisé une fois, de manière statique, lorsque la charge de l'exécution du classe. Cela lui permettrait d'être accédé sans avoir à créer une instance de test
, ainsi que de supprimer le bogue de la réinitialisation sur une nouvelle instance de test
.
A l'inverse, si cela devrait plutôt être un exemple valeur au lieu d'une valeur statique, vous pouvez simplement changer sa déclaration:
public myclass x;
Il est difficile de dire ce qui se passe sans voir un peu plus de code. Pouvez-vous nous montrer comment et d'où accédez-vous à 'x'? –
Je suis désolé Im grâce à un appareil mobile. Mais l'autre classe est une classe simple normale avec throws Exception pour chaque méthode –
J'ai essayé d'accéder à x à tous les endroits commentés en utilisant x == null if instruction –