[ timberman @ 15.01.2020. 20:45 ] @
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

[Ovu poruku je menjao timberman dana 15.01.2020. u 22:30 GMT+1]
[ FooLControL @ 15.01.2020. 21:21 ] @
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();
    }
 
[ timberman @ 15.01.2020. 21:27 ] @
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.
[ FooLControL @ 15.01.2020. 21:38 ] @
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();
        }
    }

 
[ FooLControL @ 15.01.2020. 21:43 ] @
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?
[ timberman @ 15.01.2020. 22:10 ] @
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
[ FooLControL @ 15.01.2020. 22:39 ] @
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
      }
   }
};

 
[ timberman @ 15.01.2020. 22:58 ] @
To je to. Ni sam ne znam koliko sa puta probao, čini mi se sve isto. Hvala!