IE盒子

搜索
查看: 100|回复: 0

Java 怎样用匿名内部类实现泛型接口?

[复制链接]

4

主题

9

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2023-3-30 20:25:39 | 显示全部楼层 |阅读模式
假设有一个泛型接口 Foo,接口声明了一个方法 void print(E e) 可以将传入的参数 e 打印出来。
我可以在外部用一个实现类 Bar 实现这个接口,将print()的参数限定为 Number 的子类,例如 Integer, Double,并将其打印出来。
现在我想用一个匿名内部类去实现 Bar 的功能。代码如下:
interface Foo {void print(E e);}
class Bar implements Foo{
    @Override
    public void print(T t) { System.out.println("Bar 的t参数为:" + t); }
}

//我希望用匿名类去实现泛型接口 Foo ,它的功能像实现类 Bar 一样,可以传入任意类型的参数,并将其打印出来。
public class Test{
    public static void main(String[] args) {
        System.out.println("=====bar1=====");
        //bar1 可以处理 Number 的子类:Integer, Double 等。
        Bar bar1 = new Bar();
        bar1.print(Integer.valueOf(123)); bar1.print(Double.valueOf(0.001));

        System.out.println("=====bar2=====");
        //匿名内部类 bar2
        Foo
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表