标签:简单的 on() ace rgs Fix prism header log override
https://blog.csdn.net/qq_39728125/article/details/77119736
在Java中有匿名类和匿名对象的概念,有名字可知他们是因为没有名字二指定为匿名类的。
匿名类(也叫匿名内部类)他是内部类的一种。匿名类在类中只能使用一次,它通常用来简化代码的编写,但使用匿名类还有一个前提条件:它必须继承一个父类或者一个接口,因此这个匿名类会被默认为这个父类或者接口的子类或实现类。如:
//这是一个简单的接口
public interface IPresenter {
void run();
}
//这是另外一个类
public class Presenter {
//使用了接口的对象作为方法的参数,然后返回接口的对象
public IPresenter getiPresenter(IPresenter iPresenter) {
return iPresenter;
}
}
//Convey类来操作上面的类和接口
public class Convey {
//定义Presenter对象
private Presenter presenter = new Presenter();
public void setiPresenter() {
//一个接口的局部变量
IPresenter iPresenter = presenter.getiPresenter(new IPresenter() {
//在这里定义一个接口的实现匿名类
@Override
public void run() {
// 实现接口的方法
}
});
}
}
在Java中这种匿名类很常见,例如:
new Button().setOnClickListener(new OnClickListener() {
//定义了一个实现事件监听的匿名类
@Override
public void onClick(View v) { //实现OnClickListener中的方法
new Thread() {
//定义了一个实现Thread的匿名类
@Override
public void run() { }
}.start();
}
});
匿名对象也是Java中比较常见的实例化对象方式,匿名对象的使用情况:
可以将匿名对象作为实际参数进行传递。
public class Convey {
private Presenter presenter;
public void setiPresenter() {
IPresenter iPresenter = presenter.getiPresenter(new IPresenter() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
}
}
public class Test {
public static void main(String[] args) {
//用匿名对象直接该类的方法
new Convey().setiPresenter();
}
标签:简单的 on() ace rgs Fix prism header log override
原文地址:https://www.cnblogs.com/guyuehuanhuan/p/10046852.html