Home > Java > javaTutorial > How Can I Simulate Pass by Reference for Primitives in Java?

How Can I Simulate Pass by Reference for Primitives in Java?

Patricia Arquette
Release: 2024-11-16 07:46:02
Original
897 people have browsed it

How Can I Simulate Pass by Reference for Primitives in Java?

Simulating Pass by Reference in Java for Primitives

In C , pass by reference provides a direct reference to the original variable, allowing changes made within functions to be reflected in the calling scope. Java, on the other hand, exclusively employs pass by value for primitives, resulting in the creation of local copies.

To achieve a similar effect in Java, consider these approaches:

1. Pass by Reference Using Objects:
Encapsulate the primitive value within an object and pass a reference to it. The code can modify the object's member variable directly.

1

2

3

4

5

6

7

8

9

class Toy {

    public int toyNumber;

}

 

void play(Toy toy){ 

    System.out.println("Toy number in play " + toy.toyNumber);  

    toy.toyNumber++; 

    System.out.println("Toy number in play after increment " + toy.toyNumber);  

}

Copy after login

2. Return the Modified Value:
Instead of trying to modify the argument, the function can return the modified value, which can then be assigned to the original variable.

1

2

3

4

5

6

int play(int toyNumber){ 

    System.out.println("Toy number in play " + toyNumber);  

    toyNumber++; 

    System.out.println("Toy number in play after increment " + toyNumber);  

    return toyNumber

}

Copy after login

3. Class/Static Member Variable:
If the functions belong to the same class or instance, consider storing the value in a class or static member variable, accessible to both functions.

4. Single-Element Array Hack:
Although considered a hack, passing a single-element array allows for an indirect way to modify the value in the calling scope.

1

2

3

4

5

void play(int[] toyNumber) { 

    System.out.println("Toy number in play" + toyNumber[0]);  

    toyNumber[0]++; 

    System.out.println("Toy number in play after increment" + toyNumber[0]);  

}

Copy after login

The above is the detailed content of How Can I Simulate Pass by Reference for Primitives in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template