com.litongjava.db.kit.Func Maven / Gradle / Ivy
package com.litongjava.db.kit;
/**
* lambda 函数工具箱,主要用来解决 JDK 函数接口参数过少的问题,同时还降低了学习成本
*
* JDK java.util.function 包里面的函数接口有如下缺点:
* 1:设计繁琐,相比动态语言的闭包在理解和学习成本上要高
* 2:函数支持的参数过少,超过两个参数时就没法使用了
* 3:基于 java 接口的闭包实现方案,转移了用户对于函数本身这个核心要点的关注,
* 接口名、方法名带来了噪声干扰
*/
public interface Func {
/**
* 0 参 0 返回函数
*/
@FunctionalInterface
public interface F00 {
void call();
}
/**
* 1 参 0 返回函数
*/
@FunctionalInterface
public interface F10 {
void call(T t);
}
/**
* 2 参 0 返回函数
*/
@FunctionalInterface
public interface F20 {
void call(T t, U u);
}
/**
* 3 参 0 返回函数
*/
@FunctionalInterface
public interface F30 {
void call(T t, U u, V v);
}
/**
* 4 参 0 返回函数
*/
@FunctionalInterface
public interface F40 {
void call(T t, U u, V v, W w);
}
/**
* 5 参 0 返回函数
*/
@FunctionalInterface
public interface F50 {
void call(T t, U u, V v, W w, X x);
}
/**
* 6 参 0 返回函数
*/
@FunctionalInterface
public interface F60 {
void call(T t, U u, V v, W w, X x, Y y);
}
/**
* 7 参 0 返回函数
*/
@FunctionalInterface
public interface F70 {
void call(T t, U u, V v, W w, X x, Y y, Z z);
}
// ---------------------------------------------
/**
* 0 参 1 返回函数
*/
@FunctionalInterface
public interface F01 {
R call();
}
/**
* 1 参 1 返回函数
*/
@FunctionalInterface
public interface F11 {
R call(T t);
}
/**
* 2 参 1 返回函数
*/
@FunctionalInterface
public interface F21 {
R call(T t, U u);
}
/**
* 3 参 1 返回函数
*/
@FunctionalInterface
public interface F31 {
R call(T t, U u, V v);
}
/**
* 4 参 1 返回函数
*/
@FunctionalInterface
public interface F41 {
R call(T t, U u, V v, W w);
}
/**
* 5 参 1 返回函数
*/
@FunctionalInterface
public interface F51 {
R call(T t, U u, V v, W w, X x);
}
/**
* 6 参 1 返回函数
*/
@FunctionalInterface
public interface F61 {
R call(T t, U u, V v, W w, X x, Y y);
}
/**
* 7 参 1 返回函数
*/
@FunctionalInterface
public interface F71 {
R call(T t, U u, V v, W w, X x, Y y, Z z);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy