Je ne semble pas être capable d'accéder aux tableaux.copyofrange dans mon projet Android à Eclipse Indigo 3.7.1 sur Ubuntu 11.10.
My Jre est Java-6-OpenJDK, que je pensais inclus des tableaux.copyofrange p>
Par exemple, si j'ai ce code: p> Eclipse me dit p> La méthode Je ne comprends pas parce que la référence Android Les tableaux A> Comprend cette méthode pour les tableaux. P> Des idées? P> P>
CopyOfrange (int [], int, int) code> est indéfini pour le type
Tableaux Code> P>
blockQuote>
3 Réponses :
Arrays.CopyOfrange a été introduit dans la classe de tableaux avec Java 6. Android est basé sur Java 5. Vous ne pouvez pas utiliser Java 6 méthodes ou classes avec Android. P>
Merci Stefan, mais je ne comprends pas pourquoi il est inclus dans la page Web de référence Android Android Tableaux
Si c'est dans l'Android Docs, alors sa prise en charge par le Dalvik VM, mais il peut ne pas être présent dans tous les niveaux d'API
La méthode En outre, vous indexez de manière incorrecte. En Java si vous avez une matrice de taille changez votre code à ceci: p> < Pré> xxx pré> p> arrayes.copyofrange () code> n'a pas été introduite tant que le niveau d'API
9 code>. Assurez-vous que vous utilisez cela comme minimum SDK.
5 code> la plage des indices de
0-> 4 code> p>
@SLATON: Merci, j'ai changé le code dans mon exemple, mais le problème est que la méthode n'est même pas reconnue, quelle que soit votre valeur que j'utilise.
Les méthodes code> CopyOfrange COTE> n'ont pas été introduites dans le SDK Android jusqu'au niveau de l'API 9. Si vous souhaitez utiliser ces méthodes, vous devez configurer votre niveau d'API en conséquence. Vous pouvez également écrire votre propre méthode de copie de tableau.
merci oui maintenant je vois. Je pense que ce n'était pas une solution évidente et que cette question ne justifie plus les votes, alors s'il vous plaît envisagez de voter.
J'ai oublié de mentionner: je ne sais pas comment cela fonctionne, mais si vous devez mettre à jour le texte de votre réponse avec le point que vous avez effectué dans votre commentaire sur le niveau de l'API afin que je puisse l'accepter? Merci.
@aez ok, je l'ai ajouté à la réponse
Oui, des tableaux.copyofrange n'existent pas dans les niveaux d'API Android <9. Code .google.com / p / Android / Problèmes / Détail? ID = 10054
Mais vous pouvez implémenter la fonction CopyOfrange, voir Stackoverflow.com/a/7970678/1173350
Agréable. Android à l'aide de Java 1.6, où la méthode CopyOfrange a été ajoutée, a eu la classe de tableaux depuis la SDK 1, mais vous avez besoin de SDK 9 de toute façon.
Si vous devez utiliser une API de plus de 9, System.ArrayCopy et Math.Min a été ajouté au niveau 1 de l'API 1, vous pouvez donc copier la fonction CopyOf et l'utiliser dans votre code.
public static byte[] copyOf(byte[] original, int newLength) { byte[] copy = new byte[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
Yikes, A -1. Si vous êtes le -1 électeur, veuillez expliquer. Merci.
@slayton OK, j'ai ajouté du code. Veuillez reconsidérer les votes de -1. Merci.