Skip to content

Commit ae2b051

Browse files
committed
feat: Function支持特定索引参数的函数,避免编写不关注的变量名
1 parent f508750 commit ae2b051

File tree

5 files changed

+90
-0
lines changed

5 files changed

+90
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
package com.github.lokic.javaplus.functional.function;
22

3+
import java.util.function.Function;
4+
35
@FunctionalInterface
46
public interface Function2<T1, T2, R> {
57
R apply(T1 t1, T2 t2);
8+
9+
static <T1, T2, R> Function2<T1, T2, R> $1(Function<T1, R> function) {
10+
return (t1, t2) -> function.apply(t1);
11+
}
12+
13+
static <T1, T2, R> Function2<T1, T2, R> $2(Function<T2, R> function) {
14+
return (t1, t2) -> function.apply(t2);
15+
}
616
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
package com.github.lokic.javaplus.functional.function;
22

3+
import java.util.function.Function;
4+
35
@FunctionalInterface
46
public interface Function3<T1, T2, T3, R> {
57
R apply(T1 t1, T2 t2, T3 t3);
8+
9+
static <T1, T2, T3, R> Function3<T1, T2, T3, R> $1(Function<T1, R> function) {
10+
return (t1, t2, t3) -> function.apply(t1);
11+
}
12+
13+
static <T1, T2, T3, R> Function3<T1, T2, T3, R> $2(Function<T2, R> function) {
14+
return (t1, t2, t3) -> function.apply(t2);
15+
}
16+
17+
static <T1, T2, T3, R> Function3<T1, T2, T3, R> $3(Function<T3, R> function) {
18+
return (t1, t2, t3) -> function.apply(t3);
19+
}
620
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
package com.github.lokic.javaplus.functional.function;
22

3+
import java.util.function.Function;
4+
35
@FunctionalInterface
46
public interface Function4<T1, T2, T3, T4, R> {
57
R apply(T1 t1, T2 t2, T3 t3, T4 t4);
8+
9+
static <T1, T2, T3, T4, R> Function4<T1, T2, T3, T4, R> $1(Function<T1, R> function) {
10+
return (t1, t2, t3, t4) -> function.apply(t1);
11+
}
12+
13+
static <T1, T2, T3, T4, R> Function4<T1, T2, T3, T4, R> $2(Function<T2, R> function) {
14+
return (t1, t2, t3, t4) -> function.apply(t2);
15+
}
16+
17+
static <T1, T2, T3, T4, R> Function4<T1, T2, T3, T4, R> $3(Function<T3, R> function) {
18+
return (t1, t2, t3, t4) -> function.apply(t3);
19+
}
20+
21+
static <T1, T2, T3, T4, R> Function4<T1, T2, T3, T4, R> $4(Function<T4, R> function) {
22+
return (t1, t2, t3, t4) -> function.apply(t4);
23+
}
624
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
package com.github.lokic.javaplus.functional.function;
22

3+
import java.util.function.Function;
4+
35
@FunctionalInterface
46
public interface Function5<T1, T2, T3, T4, T5, R> {
57
R apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5);
8+
9+
static <T1, T2, T3, T4, T5, R> Function5<T1, T2, T3, T4, T5, R> $1(Function<T1, R> function) {
10+
return (t1, t2, t3, t4, t5) -> function.apply(t1);
11+
}
12+
13+
static <T1, T2, T3, T4, T5, R> Function5<T1, T2, T3, T4, T5, R> $2(Function<T2, R> function) {
14+
return (t1, t2, t3, t4, t5) -> function.apply(t2);
15+
}
16+
17+
static <T1, T2, T3, T4, T5, R> Function5<T1, T2, T3, T4, T5, R> $3(Function<T3, R> function) {
18+
return (t1, t2, t3, t4, t5) -> function.apply(t3);
19+
}
20+
21+
static <T1, T2, T3, T4, T5, R> Function5<T1, T2, T3, T4, T5, R> $4(Function<T4, R> function) {
22+
return (t1, t2, t3, t4, t5) -> function.apply(t4);
23+
}
24+
25+
static <T1, T2, T3, T4, T5, R> Function5<T1, T2, T3, T4, T5, R> $5(Function<T5, R> function) {
26+
return (t1, t2, t3, t4, t5) -> function.apply(t5);
27+
}
628
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,32 @@
11
package com.github.lokic.javaplus.functional.function;
22

3+
import java.util.function.Function;
4+
35
@FunctionalInterface
46
public interface Function6<T1, T2, T3, T4, T5, T6, R> {
57
R apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6);
8+
9+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $1(Function<T1, R> function) {
10+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t1);
11+
}
12+
13+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $2(Function<T2, R> function) {
14+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t2);
15+
}
16+
17+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $3(Function<T3, R> function) {
18+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t3);
19+
}
20+
21+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $4(Function<T4, R> function) {
22+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t4);
23+
}
24+
25+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $5(Function<T5, R> function) {
26+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t5);
27+
}
28+
29+
static <T1, T2, T3, T4, T5, T6, R> Function6<T1, T2, T3, T4, T5, T6, R> $6(Function<T6, R> function) {
30+
return (t1, t2, t3, t4, t5, t6) -> function.apply(t6);
31+
}
632
}

0 commit comments

Comments
 (0)