第一个. 有接口实现类的情况
创建一个类 A:
public class A {
private A a;
private static int i = 0;
A() {
a = this;
}
public void start() {
new Thread(new Runnable() {
public void run() {
while (true) {
i = i + 1;
b.methodB(a, i);
}
}
}).start();
}
private B b;
public void setBListener(B b2) {
b = b2;
}
}
创建一个接口 B:
public interface B {
void methodB(A a, int i);
}
最后创建一个实现 B 接口的类 C:
public class C implements B {
private static int x;
private static C c;
@Override
public void methodB(A a, int i) {
x = i;
System.out.println(x);
}
public static void main(String args[]) {
A a = new A();
c = new C();
a.start();
a.setBListner(c);
}
}
第二个. 使用匿名内部类的情况
创建一个类 A:
public class A {
int x = 1;
int getData(B b) {
b.get_in(x);
return 1;
}
}
创建一个接口 B:
public interface B {
void get_in(int i);
}
创建一个类 C:
public class C {
public static void main(String args[]){
int y = new A().getData(new B(){
@Override
public void get_in(int z) {
System.out.println(z);
}
});
System.out.println(y);
}
}