好处有啥?不确定,只是不用放到类上实现了。难道只有这一个好处么?
import java.util.ArrayList;
import java.util.List;
public class InterfaceUse {
public static void main(String[] args) {
InterfaceUse interfaceUse = new InterfaceUse();
List<MyClass> list = new ArrayList<>();
list.add(new MyClass(1, "aa"));
list.add(new MyClass(2, "bb"));
interfaceUse.MyMethod(list, new MyInterface<MyClass>() {
@Override
public void iterator(MyClass myClass) {
System.out.println("我是接口实现:" + myClass);
}
});
interfaceUse.MyMethod(list, new MyInterface<MyClass>() {
@Override
public void iterator(MyClass myClass) {
System.out.println("我是接口实现:" + myClass.getName());
}
});
}
private <T> void MyMethod(List<MyClass> list, MyInterface<T> my) {
System.out.println("我是MyMethod方法!");
MyClass myClass = new MyClass(4, "ff");
for (MyClass t : list) {
my.iterator((T) t);
}
}
private interface MyInterface<T> {
void iterator(T t);
}
}
class MyClass {
private int arg;
private String name;
public int getArg() {
return arg;
}
public void setArg(int arg) {
this.arg = arg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
MyClass(int arg, String name) {
this.arg = arg;
this.name = name;
}
@Override
public String toString() {
return "MyClass{" +
"arg=" + arg +
", name='" + name + '\'' +
'}';
}
}