匿名类和匿名方法是Java中比较常见的概念。这两种方式都可以让开发者更加灵活地编写代码,节省代码量,提高代码复用性。
首先说一下匿名类。匿名类是没有名字的内部类,通常用于实现某个接口或者继承某个抽象类。它可以直接在需要使用的地方进行定义和实例化,无需新建一个类文件。下面是一个使用匿名类实现接口的例子:
interface MyInterface { void sayHello(String name); public class MyClass { public static void main(String[] args) { MyInterface myInterface = new MyInterface() { @Override public void sayHello(String name) { System.out.println("Hello, " + name + "!"); myInterface.sayHello("Jack"); }
上面的代码中,我们定义了一个接口 MyInterface,然后使用了一个匿名类来实现该接口。我们直接在 main 方法中实例化了这个匿名类,并且重写了接口中的方法。这样就可以直接调用接口中的方法了。
接下来说一下匿名方法。匿名方法也叫 Lambda 表达式,是 JDK1.8 版本中引入的新特性。它可以用更加简洁的方式实现某些功能,比如排序、遍历等。下面是一个使用 Lambda 表达式排序的例子:
List<String> list = new ArrayList<>(); list.add("apple"); list.add("orange"); list.add("banana"); Collections.sort(list, (s1, s2) -> s1.compareTo(s2));