SGr*_*SGr 1 java lambda overloading java-8
我似乎无法使它工作.
Function<Integer, Integer> test = x -> x+x;
Function<String, String> test = x -> x+x;
Run Code Online (Sandbox Code Playgroud)
产量
重复的局部变量
test
如何才能使其test.apply(5)返回10并test.apply("5")返回"55"?
简单地说:你做不到.
你正在做的不是超载.它创建了两个Function具有冲突名称的接口的独立实例.
它等同于:
int a = 1;
int a = 2;
Run Code Online (Sandbox Code Playgroud)
在同一范围内,同样非法.
如果你可以apply在Function接口中有两个定义,那么就会发生重载- 一个接受String参数,一个接受int.您不能(轻松地)修改java中的现有接口.