当我有两个同名方法时,如何在JAVA中指定lambda表达式?
JAVA8
package com.gsy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.ResourceBundle;
public class EmailProperty {
public static void main(String args[]) {
}
interface qqq{
int a(int a);
}
interface ppp{
int a(int b);
}
class test{
int a;
int b;
int testa(int a,int b,qqq qqq){
return 1;
}
int testa(int a,int b,ppp ppp){
return 1;
}
}
public EmailProperty() {
test aaa = new test();
aaa.a = 1;
aaa.b = 2;
aaa.testa(1, 2,new ppp() {
@Override
public int a(int b) {
// TODO Auto-generated method stub
return 0;
}
});
aaa.testa(1, 2,???);
}
}
我可以用???编写什么,不需要使用匿名函数。当我使用lambda时,找不到任何指定ppp或qqq的方法。
答案 0 :(得分:5)
您可以投射:
aaa.testa(1, 2, (qqq) i -> 0);
aaa.testa(1, 2, (ppp) i -> 0);
或使用变量:
qqq q = i -> 0;
aaa.testa(1, 2, q);