[java] methode clone()

Fermé
karine - 25 mai 2005 à 16:39
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 - 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 !
A voir également:

6 réponses

jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 51
25 mai 2005 à 18:48
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
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 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 51
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
0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
26 mai 2005 à 11:16
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
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 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 15 juin 2007 55
26 mai 2005 à 13:19
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
merci Pool Orion, je vais essayer autre chose alors.
0