GNT sans publicité, site mobile, fonctionnalitées exclusives...

Question à propos de "final"

Le
François Grondin
Bonjour à tous.

Dernièrement, moi et d'autres collègues de travail nous sommes interrogés à
propos de l'utilisation de "final" en Java. Nous étions tous d'accord
concernant son utilité pour définir une classe ou une méthode qui n'est pas
réimplémentée, ou pour définir les paramètres d'une méthode..

Cependant, nous avions des doutes concernant son utilisation dans une
méthode. Une variable définie à l'intérieur d'une méthode a-t-elle avantage
ou non à être définie finale? Quelqu'un a-t-il des arguments ou des
références sur le sujet?

Par exemple :

public final class MyClass
{
public MyClass()
{
}

public final void add(final Integer anInteger)
{
final int i = 4;
System.out.println(i + anInteger.intValue());
}
}

Merci.

François
Lire les 4 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
pasde.bcausse.spam
Le #192714
François Grondin
Bonjour à tous.

Dernièrement, moi et d'autres collègues de travail nous sommes interrogés à
propos de l'utilisation de "final" en Java. Nous étions tous d'accord
concernant son utilité pour définir une classe ou une méthode qui n'est pas
réimplémentée, ou pour définir les paramètres d'une méthode..

Cependant, nous avions des doutes concernant son utilisation dans une
méthode. Une variable définie à l'intérieur d'une méthode a-t-elle avantage
ou non à être définie finale? Quelqu'un a-t-il des arguments ou des
références sur le sujet?

Par exemple :

public final class MyClass
{
public MyClass()
{
}

public final void add(final Integer anInteger)
{
final int i = 4;
System.out.println(i + anInteger.intValue());
}
}

Merci.

François


1) ca securise le code.
2) facilite les possibilites d'optimisation

3) final class & final methode font doublons (mais je pinaille)

--
Bruno Causse
http://perso.wanadoo.fr/othello

Arnaud Berger
Le #192661
Bonjour,

Généralement, une variable locale déclarée final dans une méthode, l'est
parce qu'une "classe locale anonyme" l'utilise également :

public void methode (){

String string="toto";

new Thread(new Runnable(){

public void run(){

System.out.println(string);
}

}).start;

/* string="tata" */

}

Ceci assure que la valeur reçue par la Runnable ne sera pas modifiée
ultérieurement.
En effet, le compilateur arrivant dans cette méthode, "crée" une variable
privée dans le Runnable, possédant la valeur spécifiée ("toto").
La ligne commentée est rejetée par le compilateur, et de toutes façons,
cette valeur ("tata") ne serait jamais prise en compte par le Runnable qui a
déjà reçu une copie de "string" avec la valeur "toto".

Plus d'infos ici :
http://renaud.waldura.com/doc/java/...shtml#vars

Cordialement,

Arnaud

"François Grondin" news: iRuge.61550$
Bonjour à tous.

Dernièrement, moi et d'autres collègues de travail nous sommes interrogés
à

propos de l'utilisation de "final" en Java. Nous étions tous d'accord
concernant son utilité pour définir une classe ou une méthode qui n'est
pas

réimplémentée, ou pour définir les paramètres d'une méthode..

Cependant, nous avions des doutes concernant son utilisation dans une
méthode. Une variable définie à l'intérieur d'une méthode a-t-elle
avantage

ou non à être définie finale? Quelqu'un a-t-il des arguments ou des
références sur le sujet?

Par exemple :

public final class MyClass
{
public MyClass()
{
}

public final void add(final Integer anInteger)
{
final int i = 4;
System.out.println(i + anInteger.intValue());
}
}

Merci.

François




Arnaud Berger
Le #192658
Lire : final String string="toto";

"Arnaud Berger" d5uvj2$7en$
Bonjour,

Généralement, une variable locale déclarée final dans une méthode, l'est
parce qu'une "classe locale anonyme" l'utilise également :

public void methode (){

String string="toto";

new Thread(new Runnable(){

public void run(){

System.out.println(string);
}

}).start;

/* string="tata" */

}

Ceci assure que la valeur reçue par la Runnable ne sera pas modifiée
ultérieurement.
En effet, le compilateur arrivant dans cette méthode, "crée" une variable
privée dans le Runnable, possédant la valeur spécifiée ("toto").
La ligne commentée est rejetée par le compilateur, et de toutes façons,
cette valeur ("tata") ne serait jamais prise en compte par le Runnable qui
a

déjà reçu une copie de "string" avec la valeur "toto".

Plus d'infos ici :
http://renaud.waldura.com/doc/java/...shtml#vars

Cordialement,

Arnaud

"François Grondin" message

news: iRuge.61550$
Bonjour à tous.

Dernièrement, moi et d'autres collègues de travail nous sommes
interrogés


à
propos de l'utilisation de "final" en Java. Nous étions tous d'accord
concernant son utilité pour définir une classe ou une méthode qui n'est
pas

réimplémentée, ou pour définir les paramètres d'une méthode..

Cependant, nous avions des doutes concernant son utilisation dans une
méthode. Une variable définie à l'intérieur d'une méthode a-t-elle
avantage

ou non à être définie finale? Quelqu'un a-t-il des arguments ou des
références sur le sujet?

Par exemple :

public final class MyClass
{
public MyClass()
{
}

public final void add(final Integer anInteger)
{
final int i = 4;
System.out.println(i + anInteger.intValue());
}
}

Merci.

François








François Grondin
Le #192593
Merci pour l'information.

François

"Arnaud Berger" news:d5uvj2$7en$
Bonjour,

Généralement, une variable locale déclarée final dans une méthode, l'est
parce qu'une "classe locale anonyme" l'utilise également :

public void methode (){

String string="toto";

new Thread(new Runnable(){

public void run(){

System.out.println(string);
}

}).start;

/* string="tata" */

}

Ceci assure que la valeur reçue par la Runnable ne sera pas modifiée
ultérieurement.
En effet, le compilateur arrivant dans cette méthode, "crée" une variable
privée dans le Runnable, possédant la valeur spécifiée ("toto").
La ligne commentée est rejetée par le compilateur, et de toutes façons,
cette valeur ("tata") ne serait jamais prise en compte par le Runnable qui
a

déjà reçu une copie de "string" avec la valeur "toto".

Plus d'infos ici :
http://renaud.waldura.com/doc/java/...shtml#vars

Cordialement,

Arnaud

"François Grondin" message

news: iRuge.61550$
Bonjour à tous.

Dernièrement, moi et d'autres collègues de travail nous sommes
interrogés


à
propos de l'utilisation de "final" en Java. Nous étions tous d'accord
concernant son utilité pour définir une classe ou une méthode qui n'est
pas

réimplémentée, ou pour définir les paramètres d'une méthode..

Cependant, nous avions des doutes concernant son utilisation dans une
méthode. Une variable définie à l'intérieur d'une méthode a-t-elle
avantage

ou non à être définie finale? Quelqu'un a-t-il des arguments ou des
références sur le sujet?

Par exemple :

public final class MyClass
{
public MyClass()
{
}

public final void add(final Integer anInteger)
{
final int i = 4;
System.out.println(i + anInteger.intValue());
}
}

Merci.

François








Publicité
Suivre les réponses
Poster une réponse
Anonyme