如何将通用类型转换为用户定义的类型?

时间:2018-09-12 03:57:42

标签: java

上下文:我们的任务是编写一个小的解释器。提示我们的目标之一是,我们不仅要使用类型double的变量,而且还要最终能够使用任何类型的变量。

我发现这样做是为了将type读为String,并将value设置为通用变量。然后,我们将value强制转换为任何Type表示的类型。

我可能会做很多if语句...

if(type.equals("String")) { /*Cast Value to String*/ }

但这太不雅观了,似乎是错误的。另外,如果用户要定义新的变量类型怎么办?我认为,很难编码可能的types是答案。

问题:是否可以或多或少地将通用变量直接转换为用户输入的类型?

1 个答案:

答案 0 :(得分:0)

看起来您的问题有两个部分。

  1. 动态地将用户提供的值转换为用户也提供的类型。我认为可以通过提供一个Type接口来实现,该接口可以具有一个将字符串转换为您的parse的{​​{1}}方法。每个Type界面还可以提供一个由用户输入的名称(如double或name等)。
  2. 第二部分-不想使用可用类型进行硬编码的地方,可以使用Java SPI(服务提供商接口)来实现。只是谷歌,你会得到很好的例子。 One here