Make java.nio.ByteBuffer a sealed class

Sebastian Stenzel sebastian.stenzel at gmail.com
Thu Jul 8 14:54:29 UTC 2021


A while back, when working on JDK-8264110, we had a discussion about the nature of ByteBuffers, where I asked whether we could eventually make this a sealed class. [1]

The idea is, that basically there are only two kinds of ByteBuffers:
- HeapByteBuffers
- MappedByteBuffer → DirectByteBuffer

While the former is backed by an array, the latter isn't, which leads to branching such as `if (buffer.hasArray())`, which could be simplified, if we knew for sure to deal with either of the two kinds.

Now, that sealed classes are stable with JDK 17, I'd like to ask for your approval to make ByteBuffer a sealed class, so we can rely on an exhaustive list of ByteBuffer "flavours" at compile time.

This is a requirement for follow-up tasks, I'd like to work on, such as JDK-8264341.


[1] https://github.com/openjdk/jdk/pull/3217#discussion_r602528233


More information about the nio-dev mailing list