c - What is a clean way to modify arguments inside a function in java? -


i interested in doing c code in java:

// sets n's ith bit right, starts 0 void setbit(int* n, int i){    *n = *n | (1 << i); } 

however, looks java can't pass addresses, clean approaches?

i thought of 2 approaches, wondering if there better ways it?

approach 1: using array

 // sets n[0]'s ith bit right, starts 0 public void setbit(int[] n, int i){    n[0] = n[0] | (1 << i); } 

approach 2: using class

private class data{    int value; }  // sets d.value's ith bit right, starts 0 public void setbit(data d, int i){    d.value = d.value | (1 << i); } 

nope, no better way it...

unless you'd traditional java way, is

d = setbit(d, i);  public int setbit(int d, int i) {   return d | (1 << i); } 

this in java "modifying arguments function" inherently unclean. clean way find alternative modifying arguments.

(sometimes it'll inevitable, in case workarounds way go. said, if want write method modify(mydata), it's better add modify() method mydata's class.)


Comments

Popular posts from this blog

All overlapping substrings matching a java regex -

c++ - Using OpenSSL in a multi-threaded application -

php - Deleting/Renaming a locked file -