scalagen icon indicating copy to clipboard operation
scalagen copied to clipboard

Converting Java8 lambdas

Open khajavi opened this issue 10 years ago • 4 comments

Scalagen cannot Convert program like this:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Java8CompareClient {

    public static void main(String[] args) {

        List<String> srcList = Arrays.asList("defg", "defg", "x", "xyz", "zzzzzzzz", "abc", "abcde");

        List<String> srcList1 = new ArrayList(srcList);
        List<String> srcList2 = new ArrayList(srcList);

        Comparator<String> comparator = (x, y) -> x.length() - y.length();

        Collections.sort(srcList1, comparator);

        System.out.println("srcList1: " + srcList1);


        Collections.sort(srcList2, (x, y) -> x.length() - y.length());

        System.out.println("srcList2: " + srcList2);
    }
}

khajavi avatar Apr 26 '15 08:04 khajavi

:+1: It seems that javaparser library fail on the lambda syntax;

package hello;
import java.util.Optional;

class HelloWorldApp {        
    public static void main(String[] args) {        
        Optional<String> opt = Optional.empty();
        opt.map(s -> s.length());
    }
}

japa.parser.ParseException: Encountered " ">" "> "" at line 10, column 20. Was expecting one of: "boolean" ... "byte" ... "char" ... "double" ... "false" ... "float" ... "int" ... "long" ... "new" ... "null" ... "short" ... "super" ... "this" ... "true" ... "void" ... <LONG_LITERAL> ... <INTEGER_LITERAL> ... <FLOATING_POINT_LITERAL> ... <CHARACTER_LITERAL> ... <STRING_LITERAL> ... <IDENTIFIER> ... "(" ... "!" ... "~" ... "++" ... "--" ... "+" ... "-" ...

The latest release support java 8 syntax :

The project now supports parsing Java 1.8 -- https://github.com/javaparser/javaparser#history

gervaisb avatar Aug 19 '15 12:08 gervaisb

+1

metasim avatar Oct 06 '15 16:10 metasim

I started a WIP PR for this here: https://github.com/timowest/scalagen/pull/83

nightscape avatar Dec 27 '16 15:12 nightscape

New PR https://github.com/timowest/scalagen/pull/84 supports Java 8 and comments.

nightscape avatar Jan 13 '17 09:01 nightscape