import javax.swing.*; import java.awt.event.*; class LambdaEksempelLive { public static void main(String[] args) { // StringFunksjon-eksempel StringFunksjonLive utrop = (s) -> s + '!'; StringFunksjonLive spoersmaal = (s) -> s + '?'; System.out.println(test("Hei", "Hei!", utrop)); System.out.println(test("Hva skjer", "Hva skjer?", spoersmaal)); // MatteOperasjon-eksempel MatteOperasjon gange = (t1, t2) -> t1 * t2; MatteOperasjon opphoeydI = (t1, t2) -> { int svar = 1; for (int i = 0; i < t2; i++) { svar *= t1; } return svar; }; System.out.println(gange.run(4, 4)); System.out.println(regnUt(7, gange, 3)); System.out.println(regnUt(7, opphoeydI, 3)); // Runnable-eksempel Thread t = new Thread(() -> System.out.println("Hei")); t.start(); // ActionListener-eksempel try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() ); } catch (Exception e) { System.exit(1); } JFrame vindu = new JFrame(); vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); vindu.add(panel); JButton knapp = new JButton("knapp"); panel.add(knapp); knapp.addActionListener((ActionEvent e) -> System.out.println("Test")); vindu.pack(); vindu.setVisible(true); } static boolean test(String testes, String forventet, StringFunksjonLive f) { return forventet.equals(f.run(testes)); } static int regnUt(int tall1, MatteOperasjon o, int tall2) { return o.run(tall1, tall2); } } interface StringFunksjonLive { String run(String str); } interface MatteOperasjon { int run(int tall1, int tall2); }