您的位置:首页 > 其它

接口回调传值的两个实例

2015-11-27 22:19 453 查看
第一个. 有接口实现类的情况

创建一个类 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: