Skip to content

🔸7🔸Peut-on modifier la valeur à l’intérieur d’un Integer ?

Non, il est impossible de modifier la valeur à l’intérieur d’un Integer car la classe Integer est immuable (immutable) en Java[1][5]. Cela signifie que lorsqu’un objet de type Integer est créé, sa valeur ne peut plus être modifiée.

Alternatives

Pour gérer des entiers modifiables, il existe deux solutions principales :

Utiliser AtomicInteger :

import java.util.concurrent.atomic.AtomicInteger;

public class ExempleAtomicInteger {
    public static void incrementer(AtomicInteger nombre) {
        nombre.incrementAndGet();
    }

    public static void main(String[] args) {
        AtomicInteger nombre = new AtomicInteger(5);
        incrementer(nombre);
        System.out.println(nombre.get()); // Affiche 6
    }
}

Créer une classe wrapper personnalisée :

public class NombreModifiable {
    private int valeur;

    public NombreModifiable(int valeur) {
        this.valeur = valeur;
    }

    public void setValeur(int nouvelleValeur) {
        this.valeur = nouvelleValeur;
    }

    public int getValeur() {
        return valeur;
    }
}

Cette limitation des Integer est intentionnelle et fait partie de la conception de Java[2]. Quand on tente de modifier un Integer, Java crée en fait un nouvel objet plutôt que de modifier l’existant[4].

Citations

  • [1] https://www.geeksforgeeks.org/how-to-pass-integer-by-reference-in-java/
  • [2] https://namekdev.net/2012/07/immutability-of-java-integer/
  • [3] https://www.scaler.com/topics/integer-class-in-java/
  • [4] https://stackoverflow.com/questions/26185527/how-can-i-change-integer-value-when-it-is-an-argument-like-change-arrays-value/26185597
  • [5] https://www.geeksforgeeks.org/primitive-wrapper-classes-are-immutable-in-java/

Note

Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.