[ timberman @ 15.01.2020. 20:45 ] @
Pokušavam sledeći Lambda Expression da prebacim u metod Code (java): 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] |
[ timberman @ 15.01.2020. 20:45 ] @
[ 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!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|