Java 7
List<Person> personList = Person.createShortList();
// Sort with Inner Class
Collections.sort(personList, new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return p1.getSurName().compareTo(p2.getSurName());
}
});
Java 8
Collections.sort(personL
例如,我有一个接口:
package tester;
public interface Calculator{
public int calculate(int a,int b);
}
或
package tester;
@FunctionalInterface
public interface Calculator{
public int calculate(int a,int b);
}
我也可以把第一个当作一个功能接口。例如:
package tester;
public class A {
int a;
int b;
int s
我想使用Spring中的这个函数接口:
@FunctionalInterface
public interface RowMapper<T> {
T mapRow(ResultSet rs, int rowNum) throws SQLException;
}
下面是通过显式声明一个RowMapper常量来使用它的方法,该常量将只调用构造函数:
namedParameterJdbcTemplate.queryForObject(sql, parameters, ValueObject.ROW_MAPPER);
public class ValueObject {
我使用的是反编译器工具,当我查看比较时,它只有一个抽象方法,没有FunctionalInterface注释
public interface Comparable<T> {
int compareTo(T var1);
}
与比较器相同,但比较器有FunctionalInterface注释
@FunctionalInterface
public interface Comparator<T> {
int compare(T var1, T var2);
...
}
我刚刚学习了java 8的方法引用概念,我发现奇怪的是在没有实现接口的情况下将方法引用分配给接口变量的例子,调用抽象的接口方法就是调用引用的方法。
interface Sayable {
void say();
}
public class InstanceMethodReference {
public void saySomething() {
System.out.println("Hello, this is non-static method.");
}
public static void main(String[
在Java中,一个lambda可以接受多种不同的类型吗? 即:单变量工作: Function adder = i -> i + 1;
System.out.println (adder.apply (10)); Varargs还可以: Function multiAdder = ints -> {
int sum = 0;
for (Integer i : ints) {
sum += i;
}
return sum;
};
//....
System.
我有这样的阶级等级:
public abstract class AbstractFoo {
abstractMethod(/*parameters*/) {
//do something;
}
}
public class Foo extends AbstractFoo {
public String doSomething(int id, int value, FooB b, FooC c) {
//do something;
}
public void doSomethingElse() {
ab
我有一个像这样的Java-8-FunctionalInterface:
@FunctionalInterface
public interface A {
void doIt ();
}
Function-Interface提供了一个compose-Method。我想使用它来减少这样的A流:
Stream<A> as;
A composed = as.reduce (() -> {}, Function::compose);
因此,我希望有一个A函数,它调用流的每个A --它的方法doIt。
composed.doIt (); // Executes every do