java 异构 建表_关于java:异构数组有什么意义?

我知道比Java和Ruby更动态的Java语言通常允许您将混合类型的对象放在数组中,如下所示:

["hello", 120, ["world"]]

我不明白为什么你会使用这样的功能。如果我想在Java中存储异构数据,我通常会为它创建一个对象。

例如,假设User具有int ID和String name。虽然我在Python / Ruby / PHP中看到你可以这样做:

[["John Smith", 000], ["Smith John", 001], ...]

这似乎比创建一个属性ID和name的类User然后拥有你的数组更安全/ OO:

[, , ...]

其中事物代表用户对象。

是否有理由在支持它的语言中使用前者而不是后者?或者是否有更大的理由使用异构数组?

注:我不是在讨论包含所有实现相同接口或从同一父接口继承的不同对象的数组,例如:

class Square extends Shape

class Triangle extends Shape

[new Square(), new Triangle()]

因为对于程序员而言,至少仍然是一个同质数组,因为你将对每个形状做同样的事情(例如,调用draw()方法),只有两者之间通常定义的方法。

Python或Ruby是动态类型的,因此异构数组是"免费"实现的。

"这似乎不太安全"?"安全"是什么意思?请注意,"类型安全"是Python中的绝对保证,因为对象的类型与某些方式无法通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值