Coder Social home page Coder Social logo

Comments (1)

aNNiMON avatar aNNiMON commented on September 28, 2024

@wjtxyz I'm getting an ambiguous call in the second and third cases.

After calling ComparatorCompat.comparingInt(...) you get ComparatorCompat<T> instance, which implements java.util.Comparator<T> as well. Now, since you're using Java 8+, then default methods appear in java.util.Comparator interface. When you calling ComparatorCompat.comparingInt(...).thenComparingInt(...) there are two method candidates:

  • ComparatorCompat<T> thenComparingInt(com.annimon.stream.function.ToIntFunction)
  • default Comparator<T> thenComparingInt(java.util.function.ToIntFunction)

Both lambdas in the second and third cases can be java.util.function.ToIntFunction or com.annimon.stream.function.ToIntFunction.

  • thenComparingInt(s -> Math.abs(s.getY()))
  • thenComparingInt((TestClass s) -> Math.abs(s.getY()))

You need to help the compiler by specifying the type of the lambda.

import com.annimon.stream.function.ToIntFunction;

// Cast lambda to specific interface 
ComparatorCompat
        .comparingInt(TestClass::getX)
        .thenComparingInt((ToIntFunction<TestClass>)s -> Math.abs(s.getY()))
// Pass lambda as variable
ToIntFunction<TestClass> absY = s -> Math.abs(s.getY());
ComparatorCompat
        .comparingInt(TestClass::getX)
        .thenComparingInt(absY);

from lightweight-stream-api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.