JAVA 接口作为方法参数使用

本文通过具体示例,深入探讨了Java中接口匿名实现的方法,展示了如何在不直接实例化类的情况下使用接口,并通过不同实现方式展示接口的灵活性。

好处有啥?不确定,只是不用放到类上实现了。难道只有这一个好处么?


import java.util.ArrayList;
import java.util.List;

public class InterfaceUse {

    public static void main(String[] args) {
        InterfaceUse interfaceUse = new InterfaceUse();
        List<MyClass> list = new ArrayList<>();
        list.add(new MyClass(1, "aa"));
        list.add(new MyClass(2, "bb"));

        interfaceUse.MyMethod(list, new MyInterface<MyClass>() {
            @Override
            public void iterator(MyClass myClass) {
                System.out.println("我是接口实现:" + myClass);
            }
        });

        interfaceUse.MyMethod(list, new MyInterface<MyClass>() {
            @Override
            public void iterator(MyClass myClass) {
                System.out.println("我是接口实现:" + myClass.getName());
            }
        });
    }

    private <T> void MyMethod(List<MyClass> list, MyInterface<T> my) {
        System.out.println("我是MyMethod方法!");
        MyClass myClass = new MyClass(4, "ff");
        for (MyClass t : list) {
            my.iterator((T) t);
        }
    }

    private interface MyInterface<T> {
        void iterator(T t);
    }
}

class MyClass {
    private int arg;
    private String name;

    public int getArg() {
        return arg;
    }

    public void setArg(int arg) {
        this.arg = arg;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    MyClass(int arg, String name) {
        this.arg = arg;
        this.name = name;
    }

    @Override
    public String toString() {
        return "MyClass{" +
                "arg=" + arg +
                ", name='" + name + '\'' +
                '}';
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值