Can I pass a primitive type by reference in Java?

后端 未结 9 1770
粉色の甜心
粉色の甜心 2021-02-05 22:58

I would like to call a method which could potentially take on different versions, i.e. the same method for input parameters that are of type:

  • boolean
  • byte
9条回答
  •  庸人自扰
    2021-02-05 23:16

    Sounds like you have a set of bits that you're parsing through. You should have it wrapped in an object, lets call that object a BitSet. You're iterating through the bits, so you'll have something like an Iterator, and as you go you want to parse out bytes, ints, longs, etc... Right?

    Then you'll have your class Parser, and it has methods on it like:

    public byte readByte(Iterator bitit) {
      //reads 8 bits, which moves the iterator forward 8 places, creates the byte, and returns it
    }
    public int readInt(Iterator bitit) {
      //reads 32 bits, which moves the iterator forward 32 places, creates the int, and returns it
    }
    

    etc...

    So after you call whichever method you need, you've extracted the value you want in a typesafe way (different return types for different methods), and the Iterator has been moved forward the correct number of positions, based on the type.

    Is that what you're looking for?

提交回复
热议问题