Problem with method references

Tomasz Kowalczewski tomasz.kowalczewski at gmail.com
Mon Jan 3 02:10:05 PST 2011


Following example does not compile (with JDK 7 b120 and b123):

package org.tkowalcz.lambda.extractor;

public class LambdaInConstructorExample {

  public static void main( final String[] args ) {
    // Compiles fine
    Extractor x = LambdaInConstructorExample#getArgCount;
  }

  public LambdaInConstructorExample() {
    // Error
    Extractor x = LambdaInConstructorExample#getArgCount;
  }

  public int getArgCount() {
    return 1;
  }
}

interface Extractor {

  public int extract( LambdaInConstructorExample lambda );
}


     [exec] src\org\tkowalcz\lambda\extractor\LambdaInConstructorExample.java:12:
incompatible types; target method extract in interface Extractor is
not suitable for lambda conversion
     [exec]     Extractor x = LambdaInConstructorExample#getArgCount;
     [exec]                   ^
     [exec]   required: Extractor
     [exec]   found:    #int()
     [exec] 1 error
     [exec] Result: 1

If I comment out the constructor then it compiles fine.

-- 
Thanks,
Tomasz


More information about the lambda-dev mailing list