2016-09-03 1 views
0

I ont la classe suivante qui extends JFrameSuppressWarnings pour la sous classe

@SuppressWarnings("serial") 
public class View extends JFrame{ 
    //bla bla bla bla code 
} 

Maintenant, j'ai la sous classe suivante:

public class Foo extends View{ 

    //bla bla bla bla 
} 

Dans la classe View Eclipse me donne un avertissement si j'ajouté SuppressWarnings pour s'en débarrasser. Je pensais qu'en faisant cela je n'aurais pas à retaper SuppressWarnings dans la classe Foo mais comme il semble que eclipse me donne un avertissement sur la classe Foo. Est-ce que cela devrait se produire?

Répondre

1

@SuppressWarnings est un exemple d'annotation en Java. Ce que vous voulez, c'est laisser Foo hériter des annotations de View.

Cependant, ce n'est pas possible en Java. This La question est de savoir pourquoi cela n'est pas possible (car sinon, l'héritage multiple peut se produire car les méthodes d'interface peuvent également avoir des annotations.)

Lorsque Eclipse vous avertit, vous ne devriez pas l'ignorer en général. il ne vous avertit que s'il a une très bonne raison de le faire.Si vous êtes vraiment sûr que dans votre programme un SuppressWarnings est approprié, alors toutes les sous-classes doivent utiliser cette même annotation

0

JFrame implémente l'interface Serializable. Pour la classe qui implémente Serializable, eclipse lui demande d'avoir un serialVersionUID

Vue s'étend de JFrame, on peut dire qu'il implémente également l'interface Serializable. Tout comme Foo, et c'est la raison pour laquelle vous devez ajouter serialVersionUID ou ajouter Suppress-Warning pour View et Foo.