Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



metoda clone()

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: metoda clone()

Autor: jidas6

19:15:57 22.05.2011

Jo diky,funguje to.

Citovat příspěvek

 

Re: metoda clone()

Autor: Behnil

10:01:10 19.05.2011

interface Interface {}

abstract class A implements Interface {

private Calendar creationDate = Calendar.getInstance();

public Calendar getCreationDate() {
return creationDate;
}

@Override
public A clone() {
try {
A clone = (A) super.clone();
clone.creationDate = (Calendar) creationDate.clone();
return clone;
} catch (CloneNotSupportedException e) {
throw new Error(e);
}
}

}

class B extends A implements Cloneable {

@Override
public B clone() {
B clone = (B) super.clone();
return clone;
}

}

Citovat příspěvek

 

metoda clone()

Autor: jidas6

18:11:51 18.05.2011

Zdravím
mám problém s klonováním.Mám abstraktní třídu MyUrlItem(ta je implementována rozhraním UrlItem) a v ní abstraktní metodu clone().Pak mám třídu MyHttpItem která dědí od MyUrlItem a musí tedy překrýt metodu clone().Mám vytvářet hlubokou kopii.Nevím jak to mám udělat,protože postup se super.clone mi nefunguje..

package eng.urlInterface;

import java.util.Calendar;

public interface UrlItem {

public String getFullUrl();

public Calendar getCreationDate();

public String getKeywords();

public void setKeywords(String string);

public int getOpenedTimes();

public boolean containsKeyword(String string);

public String getShortInfo();

public UrlItem clone();

public boolean isSameAs(UrlItem ui);
}



public abstract class MyUrlItem implements eng.urlInterface.UrlItem {

public abstract String getFullUrl();

private Calendar creationDate=Calendar.getInstance();

public Calendar getCreationDate() {
return creationDate;
}

public String getKeywords() {
throw new UnsupportedOperationException("Not supported yet.");
}

public void setKeywords(String string) {
throw new UnsupportedOperationException("Not supported yet.");
}

public int getOpenedTimes() {
throw new UnsupportedOperationException("Not supported yet.");
}

public boolean containsKeyword(String string) {
throw new UnsupportedOperationException("Not supported yet.");
}

public String getShortInfo() {
throw new UnsupportedOperationException("Not supported yet.");
}

public abstract UrlItem clone();//tohle musim prekryt v potomkovi

public boolean isSameAs(UrlItem ui) {
if(this.getFullUrl().compareTo(ui.getFullUrl())==0)
return true;
else
return false;
}

}



public class MyHttpItem extends MyUrlItem implements eng.urlInterface.HttpItem,Cloneable{
public String webadress=null;
public boolean source=false;
public MyHttpItem(String fullUrl)throws java.lang.IllegalArgumentException,eng.exceptions.NullArgumentException{
if(fullUrl==null)
throw new eng.exceptions.NullArgumentException("fullUrl");
if(fullUrl.startsWith("http://")){
webadress=fullUrl.substring(7);
}
else
if(fullUrl.startsWith("https://")){
source=true;
webadress=fullUrl.substring(8);
}
else
throw new java.lang.IllegalArgumentException("url is not
}

@Override
public String getFullUrl() {
String s;
if(source==false){
s="http://"+webadress;
}
else{
s="https://"+webadress;
}
return s;
}

public MyUrlItem clone(){
//tady nevím co dělat, volání super.clone() nemohu použít
}
public String getWebAddress() {
return webadress;
}
public boolean getSource() {
return source;
}
public boolean isSecure() {
if(source==true){
return true;
}
else{
return false;
}
}

}

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: