J'ai une méthode qui est supposée retourner un ByteBuffer. La viande de la méthode effectue les opérations suivantes:ByteBuffer retourner quand la dernière valeur est nulle
if (true) {
//code that puts some data into ByteBuffer bb
return bb
}
else {
//should not be writing any data to bb
//intention: leave bb as is
return null;
}
Après avoir appelé cette méthode et de mettre les données nécessaires dans le ByteBuffer, je retourne dans un tableau d'octets en appelant d'abord bb.flip()
. Toutefois, si la dernière itération via la boucle if-else s'est avérée être false, la dernière donnée entrée est null
et j'obtiens l'erreur java.lang.NullPointerException
.
Allocating zero capacity ByteBuffer
Selon la page ci-dessus, je suis censé revenir un ByteBuffer, mais je ne suis pas sûr de savoir comment revenir à zéro longueur quelque chose comme ça.
Des idées sur la façon de retourner un tampon d'octets vide?
[Combien d'efforts de recherche sont attendus des utilisateurs de Stack Overflow?] (Https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) La réponse, * "Beaucoup, une quantité absurde, plus que ce que vous pensez être capable Après que vous ayez atteint le bout de votre corde et la douleur de ne pas avoir la réponse dépasse la grande quantité de honte reçue en posant votre question C'est à ce moment-là que vous aurez fait toutes les recherches nécessaires pour en faire une bonne question. »* –
La question que vous avez posée a le code exact dont vous avez besoin. ** C'est littéralement la deuxième ligne de la question! ** Chaque question [tag: java] que vous avez posée jusqu'à présent est expliquée en lisant simplement [tag: javadoc]. –
Apprenez à utiliser le [JavaDoc] (https://stackoverflow.com/questions/11747712/where-is-the-javadoc-for-my-installed-java-i-have-sdk-for-7) avant de venir ici demander à quelqu'un d'autre de vous le lire. ['ByteBuffer.allocate()'] (https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html#allocate (int)) –