Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.195 pregleda

Najnovija ↓

Kako prevesti Lambda Expression u metod 15.01.2020. u 21:45 · pre 82 meseca
izmenjeno 1 put, poslednji put timberman 15.01.2020. u 22:30
  1. timberman15.01.2020. u 22:30zapis iz teksta poruke
#1
Pokušavam sledeći Lambda Expression da prebacim u metod
Code (java):

Button[] btns;
EventHandler handler = evt -> {
String pressedBtns = ((Button)evt.getSource()).getText();
switch (pressedBtns) {
// Neki kod
}
};
 



Znam da je LE naprednije ali ako može pomoć
Pozdrav
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 22:21 · pre 82 meseca #2
Ne razumem najbolje sta zelis. Postavljam ti primer lambda izraza, i metode koja vraca lambda izraz.

Code (java):

    Predicate<String> isEmpty = s -> s != null && s.isEmpty();
 


Code (java):

     private Predicate<String> isEmpty() {
        return s -> s != null && s.isEmpty();
    }
 
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 22:27 · pre 82 meseca #3
Ja bih da nemam lambda izraz nego metod, kao što se pisalo prije nego su uvedeni lambda izrazi

Npr.
Code (java):

Button btn = new Button();
        btn.setText("Kako se zoveš?");
        btn.setOnAction(new EventHandler<ActionEvent>() {
           
            @Override
            public void handle(ActionEvent event) {
                String ime=JOptionPane.showInputDialog("Unesite ime");
                btn.setText("Zdravo, "+ime);
               
            }
        });
 


Kod ovog koda mi NetBeans nudi This anonymous inner class creation can be turned into a lambda expression i kada to odradim kod postaje

Code (java):

  Button btn = new Button();
        btn.setText("Kako se zoveš?");
        btn.setOnAction((ActionEvent event) -> {
            String ime=JOptionPane.showInputDialog("Unesite ime");
            btn.setText("Zdravo, "+ime);
        });
 


E ja hoću unazad, od ovog drugog da dobijem prvo.
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 22:38 · pre 82 meseca #4
Lambda izraz ti je interface sa jednom metodom.

Morao bi da implemetiras taj interfejs i da pozoves metodu nad instancom te implementacije, ili koristeci anonimne klasu. Cetvrti nacin da ja znam ne postoji.

Mada ne znam sto bezis od labmda izraza.

Edit:

Ti onda zelis anonimnu klasu.

Code (java):

    Predicate<String> isEmpty = new Predicate<String>() {
        @Override
        public boolean test(String s) {
            return s != null && s.isEmpty();
        }
    }

 
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 22:43 · pre 82 meseca #5
Citat:
timberman:
Kod ovog koda mi NetBeans nudi This anonymous inner class creation can be turned into a lambda expression i kada to odradim kod postaje

Code (java):

  Button btn = new Button();
        btn.setText("Kako se zoveš?");
        btn.setOnAction((ActionEvent event) -> {
            String ime=JOptionPane.showInputDialog("Unesite ime");
            btn.setText("Zdravo, "+ime);
        });
 


E ja hoću unazad, od ovog drugog da dobijem prvo.


Pa sto prihvatas to sto ti NetBeans nudi ako neces?
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 23:10 · pre 82 meseca #6
Prihvatio sam da bih pokazao šta želim. Želim onaj kod iz pvog posta da napišem kao anonimnu klasu. Našao sam takav kod, nisam ga ja prebacio u lambda izraz
Re: Kako prevesti Lambda Expression u metod 15.01.2020. u 23:39 · pre 82 meseca #7
Pa samo napravis anonimnu klasu, new i naziv interfejsa sa tipom koji treba da se implementira.

Evo kod iz glave otprilike.

Code (java):


EventHandler<ActionEvent> handler = new EventHandler<>() {

   @Override
   public void handle(ActionEvent event) {

      String pressedBtns = ((Button) event.getSource()).getText();

      switch (pressedBtns) {
         // Neki kod
      }
   }
};

 
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme