java可以用接口实现类似函数指针的用法,这种方法叫做代理模式,最简单的代理模式就可以实现类似的在这种用法,本质使用接口实例来代替函数对象。
interface Do {void doSomething()
}
class MyDo implements Do {
@Override
public void doSomething() {
System.out.println("i'm doing")
}
}
class YouDo implements Do {
@Override
public void doSomething() {
System.out.println("you're doing")
}
}
class ItDo implements Do {
@Override
public void doSomething() {
System.out.println("it's doing")
}
}
public class Demo {
public static void main(String args[]) throws IOException {
Do[] annyDo = new Do[]{new MyDo(), new YouDo(), new ItDo()}
for (Do nowDo : annyDo) {
nowDo.doSomething()
}
}
}
代理模式相关资料:网页链接
一般不会。Java中的8种基本数据类型,变量的值可以有其默认值,加入没有对其正常赋值,java虚拟机是不能正确编译通过的,因此使用基本的Java数据类型一般不会是不会引起空指针异常的。实际开发中,大多数的空指针异常主要与对象的操作相关。