Imam metod koji moram da pozovem sa donjeg sloja aplikacije. Da li mogu nekako taj metod (referencu na njega) da prosledim prilikom pravljenja instance klase koja treba da pozove taj metod? Znam da je u .NET_u to delegat ali u javi nemam pojma kako se ovo realizuje :(
Da li postoje delegati u javi
Zaključano
Zakačeno
Delegati, onakvi kakvi su u .NET platformi ne postoje u javi. Ipak, možda bi mogao da rešiš problem koristeći reflection. Pogledaj package java.lang.reflect.
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Napravi interfejs sa zeljenom metodom, i nek ti klasa implementira taj interfejs. Posle prilikom pravljenja instance nemoj proslediti metodu, vec instancu klase koja implementira taj interfejs.
Citat:
gajo2: Napravi interfejs sa zeljenom metodom, i nek ti klasa implementira taj interfejs. Posle prilikom pravljenja instance nemoj proslediti metodu, vec instancu klase koja implementira taj interfejs.
Ovo mi se svidja ;), ali negde nesto zajebem...
Ovo mi je interface
Code:
public interface ICallBack {
public void CallBackMethod(String par);
}
public interface ICallBack {
public void CallBackMethod(String par);
}
Ovo mi je glavna forma, promenljivoj 'getMess' prosledjujem pomocu 'this' ovu formu, ok?
public class frmMain extends MIDlet implements CommandListener, ICallBack {
private Command exitCommand;
...
...
...
private clsGetMessage getMess = new clsGetMessage(this);
[/code]
Ovo je klasa koja mi sadrzi neku logiku i koja kada odradi svoj posao treba da mi pozove taj CallBack method i u njega prosledi odredjeni parametar koji treba da mi se pojavi u GUI layer-u.
mm sam napravio kao instancu glavne forme da bih pozvao callback odnekle, mislim da sam ovde pogresio ali ne znam kako da resim?
Code:
public class clsGetMessage
{ ...
...
...
private frmMain mm = new frmMain();
...
public clsGetMessage(frmMain o)
{
service = new ServiceSoap_Stub();
mm = o;
}
...
mm.CallBackMethod(msgFromWebService);
public class clsGetMessage
{ ...
...
...
private frmMain mm = new frmMain();
...
public clsGetMessage(frmMain o)
{
service = new ServiceSoap_Stub();
mm = o;
}
...
mm.CallBackMethod(msgFromWebService);
Hmm pa evo ti ideje, valjda pomogne:
Code:
public class frmMain extends MIDlet implements CommandListener, ICallBack {
public void CallBackMethod(String par) {
// implementacija metode
}
}
// -----------------------------------------------------
public class clsGetMessage {
private frmMain mm;
public clsGetMessage(frmMain o) {
this.mm = o;
}
public void nekaDrugaMetoda(String msgFromWebService) {
if (mm != null) mm.CallBackMethod(msgFromWebService);
}
}
public class frmMain extends MIDlet implements CommandListener, ICallBack {
public void CallBackMethod(String par) {
// implementacija metode
}
}
// -----------------------------------------------------
public class clsGetMessage {
private frmMain mm;
public clsGetMessage(frmMain o) {
this.mm = o;
}
public void nekaDrugaMetoda(String msgFromWebService) {
if (mm != null) mm.CallBackMethod(msgFromWebService);
}
}
hmm... pa to je isto ovo sto sam gore napisao. Isti problem :(
Pa nista, na pravom si putu barem, sad samo nadji gresku