Posez votre question Signaler

[java] methode clone()

karine - Dernière réponse le 26 mai 2005 à 14:25
Bonjour,

J'essayes d'utiliser la méhode clone() sur un InputStream et j'ai que des erreurs !

J'ai essayé en écrivant une classe NInputStream, en écrivant une classe qui redéfinit clone, y a rien qui marche.

Est-ce qu'il y aurait quelqu'un d'assez gentil pour m'expliquer cette ****** méthode ? et comment l'utiliser ?

Merci beaucoup !
Lire la suite 

[java] methode clone() »

7 réponses
Réponse
+0
moins plus
Lorsque tu redéfinis la classe NInputStream il faut écrire :

public class NInputStream extends InputStream implements Cloneable

Ensuite, lorsque tu as un objet in1 de type InputStream, tu fais :

NInputStream in2 = ((NInputStream) in1).clone();

Si ca ne fonctionne pas, essaie cela :

NInputStream in2 = (NInputStream)(((NInputStream) in1).clone());

Bonne chance et tiens moi au courant
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour jebok !

J'ai créé la classe NInputStream, mais qu'est-ce que je mets dedans?
J'ai une erreur
Sources/NInputStream.java:4: NInputStream is not abstract and does not override abstract method read() in java.io.InputStream
public class NInputStream extends InputStream implements Cloneable {
^


merci
jebok - 26 mai 2005 à 14:25
Rajoute une méthode read() dans la classe NInputStream sans rien mettre à l'intérieur :

public int read() {
}


ou éventuellement :

public int read() {
try{
} catch (IOException e){}
}


Et si vraiment il n'accepte pas, alors déclare ta classe NInputStream en tant que fille non pas de la classe InputStream mais de la classe FileInputStream ou éventuellement de la classe ObjectInputStream.
Ces 2 dernières ne sont pas abstraites donc pas besoin de réécrire la méthode read()

Tiens moi au courant.
Bonne chance
Ajouter un commentaire
Réponse
+0
moins plus
D'après ce qu'il dit tu as créé une méhode read. Et tu ne peux pas la remplacer. Trouve lui un autre nom comme "lire". Tu n'aimes pas mettre des noms de fonction en français ?
Ajouter un commentaire
Réponse
+0
moins plus
Non, au contraire, j'aime bien mettre les noms en français ;-)

J'ai créé aucune méthode read(), dans la classe NInputStream, j'ai rien mis du tout.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Désolé mais tu ne pourras jamais réaliser un clone d'une class abstraite.

Par définition, le clone est réalisé sur un objet et comme il est impossible d'instantier une class abstraite ...
Ajouter un commentaire
Réponse
+0
moins plus
merci Pool Orion, je vais essayer autre chose alors.
Ajouter un commentaire
Ce document intitulé « [java] methode clone() » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook