Showerthought:dataype的数据类型?

时间:2016-10-25 14:08:40

标签: java

我对编程没有经验,如果这没有任何意义,那就很抱歉。无论如何:数据类型是否有数据类型? 这听起来很奇怪,所以这是一个如何使用它的例子:

DataType dt = new DataType("int");
dt i = 3;
double d = 5;
int castedD = (dt) d;

虽然我很确定编译器(或解释器?)使这种语法不可能,但在我看来这是一个非常有趣的想法。 类似的东西已经存在吗?对不起,如果这没有任何意义,我只是想知道这是不是愚蠢或好主意。 :)

1 个答案:

答案 0 :(得分:2)

Java中没有这样的东西是可能的。您不能在Java源代码中将值用作类型:

  • Java语言规范声明类型名称和变量名称取自不同的名称空间。因此,您的示例代码实际上告诉编译器查找名为dt的类。

  • 如果允许这种事情,Java将不再是静态类型的编程语言。

现在,您可以使用 reflection 在Java中执行此类操作,但代码无法像您的(幻想)代码一样优雅。它比传统的Java代码慢一个数量级(或更多),而且更加脆弱,因为编译器可以为您提供很少的错误检查。

我想不出任何允许变量被用作类型的主流编程语言(静态或动态类型)。如果您知道一个,请评论....