真实生活中的泛型类示例

6

在Java面试中,我遇到了以下问题:

  1. 你能否举出一些现实生活中的泛型类示例?不是来自于真正的编程生活,而是普通生活中的。例如,你正在向一个对编程一无所知的人解释泛型。

  2. 关于最简单的设计模式——单例模式,同样的问题。

对于第一个问题(关于泛型),我并没有什么想法。我尝试提到了不同的手工工具(如挽锯),它们只能处理一种类型的材料,但这并不是真正的泛型。

请避免像集合一样的建议,这太幼稚和显而易见了。


8
独裁者是一个相当好的单身汉。每个国家只能有一个,而且总体上它们都是不好的做法。 :) - Mat
3个回答

7
  1. 我想要开一家宠物店,无论是什么不同类型的宠物,但我必须要有一家宠物店。我想要小猫,乌龟和蜘蛛。我想要能够计算它们的数量,并且按此排序。我不想被迫将我的乌龟标记为乌龟,因为我知道它是一只乌龟。

  2. 只有一个商店银行账户,无论客户是在线下单还是邮寄订单,都只会使用这一个商店银行账户进行支付。无论从哪个地方访问我的商店,都不会再有其他银行账户。


0

一碗东西总是一个很好的例子。

Bowl<T> can be Bowl<Cookie> Bowl<Candy> ....

那么,你不能把糖果放在饼干碗里吗? - bsiamionau
1
你可以这样做,但是想象一下一个装满碗的架子。每个碗都是相同的(大小、形状等),并且以相同的方式处理(放入东西,从中取出顶部物品)。但它们被标记为Cookie、Candy等。你希望确保,如果你从Cookie碗中取出东西,它确实是一个Cookie,而不是糖果。在这种情况下,你不希望在cookie碗中放置糖果,尽管你可以在技术上这样做。泛型为你提供了“类型安全”。 - Pyranja

0

所以我想买一台电视。我正在查看一个 List<TV>。但是后来我决定要买一台液晶电视。所以我通过列表进行 instanceof 操作,得到了 List<LCD_TV>。由于我想要一台公司的电视,所以我调用抽象方法 TV.getManufacturer() 并检查它是否等于公司。然后我知道我想要一台 LED 背光的液晶电视,所以我调用 LCD_TV.getLcdType() 并检查它是否等于 LED。然后我只需随机选择 list.get( rand() % list.size() )


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接