[java] methode clone()

karine -  
jebok Messages postés 358 Statut Membre -
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 !
A voir également:

6 réponses

jebok Messages postés 358 Statut Membre 51
 
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
0
karine
 
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
0
jebok Messages postés 358 Statut Membre 51
 
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
0
mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
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 ?
0
karine
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pool Orion Messages postés 124 Statut Membre 55
 
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 ...
0
karine
 
merci Pool Orion, je vais essayer autre chose alors.
0