Lambda-Expression

  • Antworten:4
pepperonas
  • Forum-Beiträge: 434

25.03.2017, 09:59:58 via Website

Hallo,
kleiner Mini-Guide, wie man Lambdas in Android verwenden kann.

  • Ändere in /Users/USER/AndroidStudioProjects/PROJECT/MODULE/build.gradle
android {
...
    defaultConfig {
...
      jackOptions {
            enabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
...
}
  • Synchronisiere gradle

Lambda-Expression:

btn.setOnClickListener(view -> {
      Log.d("kkk", "Ganz großes Kino!"); 
       return false;
 });

Bitte beachten: Instant-Run wird momentan noch nicht unter Java8 unterstützt.


Quellen:
https://developer.android.com/guide/platform/j8-jack.html

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

Open Source

Ludwig H.LudyPascal P.

Antworten
Klaus B.
  • Forum-Beiträge: 606

25.03.2017, 11:00:23 via App

aha !?

Antworten
pepperonas
  • Forum-Beiträge: 434

25.03.2017, 11:18:11 via Website

Hehe, der Vorteil geht aus dem Beispiel oben nicht so recht hervor, da hast du wohl recht^^

Nehmen wir eine Methode (und keine Funktion), dann sparen wir uns den Rückgabewert und dann bekommt man schöne Einzeiler:

alt:

fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Snackbar.make(...).show();
    }
});

neu (Lambda-Expression):

fab.setOnClickListener(view -> Snackbar.make(...).show());

Meiner Meinung nach ein klarer Vorteil von Les- und Wartbarkeit von Code.

Open Source

Ludy

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

26.03.2017, 13:25:59 via Website

Man muss leider noch sagen, dass Avira - vielleicht auch andere AV's - den Prozess java.exe für das Compiling mit Lambda sperrt. Es kommt zur "Toolchain Exception: Jack compilation exception". Abhilfe - die java.exe im JDK/bin-Ordner zur Ausnahme des Echtzeit-Scan hinzufügen.

Edit: der komplette Echtzeit-Schutz muss ausgeschaltet werden (angry)

— geändert am 26.03.2017, 14:03:00

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Ludwig H.pepperonas

Antworten
pepperonas
  • Forum-Beiträge: 434

26.03.2017, 23:41:10 via Website

Hi Ludy,
ich persönlich bin skeptisch was Sicherheitstools im Allgemeinen angeht. Nutze selbst seit über 10 Jahren keine mehr und kann keine Probleme feststellen (Online-Banking mache ich auch am Rechner und sonst hab ich natürlich auch sensible Daten auf den Geräten). Meine Erfahrungswerte betreffen alle drei großen Betriebssysteme. Cracks für Freischaltungen (oder ähnliche "dubiose" Tools) nutze ich nicht. Dass das Abschalten von Antiviren-Tools positive Effekte haben kann, ist in letzter Zeit öfter zu hören.

http://www.networkworld.com/article/3142735/security/google-security-expert-says-antivirus-apps-dont-work.html
https://www.techworm.net/2017/01/ex-mozilla-engineers-warns-users-using-third-party-antivirus-software-pcs.html

Zitat aus https://www.heise.de/security/meldung/US-CERT-warnt-vor-HTTPS-Inspektion-3660610.html

Antiviren-Software unterbricht häufig die Verschlüsselung zwischen
Browser und HTTPS-Web-Server, um die übertragenen Daten zu scannen,
bevor sie Unheil anrichten könnten.

Trotzdem möchte ich keine Empfehlung abgeben es mir gleich zu tun.
Gründe:
- bin kein "Sicherheitsfachmann"
- es kann Nachteile hinsichtlich des Versicherungsschutz haben, keine Sicherheitstools installiert zu haben

Wenn ich eine Empfehlung aussprechen sollte, würde sie lauten "2-FA einsetzen, wo es geht".

PS: Dass AndroidPIT hinsichtlich der SSL-Unterstützung so manchem DAX-Konzern (mit mehreren Milliarden Euro Umsatz) voraus ist, sagt imho etwas über das Berufsbild von "Sicherheitsfachleuten" aus. :) Premium Automobilhersteller sind hier offenbar besonders nachlässig.

Open Source

Ludwig H.

Antworten