cregithar
2020-12-20 10:56
采纳率: 95.2%
浏览 12
已采纳

java中LinkedList初始化语句疑问

//这是普通的队列的初始化语句
Queue<Integer> queue = new LinkedList<>();
queue.add(1);

//这是我看到的一种写法
//1.这个匿名类为什么连方法名都可以省略掉?
//2.请问能说明一下是怎么得到这个式子的吗?
Queue<Integer> queue = new LinkedList<Integer>(){{add(1);}};
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • uf_deen 2020-12-22 18:00
    已采纳

    这是匿名内部类的写法,等价于你上边的写法

    点赞 评论
  • 无厘头编程 2020-12-20 14:42

    第一个:LinkedList<Integer> queue = new LinkedList<T>() ,T 可以是任何 类型,它自动抄你左边那个。你看不见,不等于它不存在。

    第二个:它不抄了,直接用了。

    点赞 评论
  • cregithar 2020-12-20 15:46

    不是,我问的不是泛型类型,我想问的是里面的

    {add(1);}

    这个为什么可以没有方法名?

    点赞 评论
  • uf_deen 2020-12-22 18:00

    你可以看看java匿名内部类那一部分

    点赞 评论

相关推荐 更多相似问题