int,short,long的通用函数

时间:2011-12-10 14:29:32

标签: java

  

可能重复:
  Why don't Generics support primitive types?

我想为int,short和long创建一个函数。我有三个几乎相同的功能。

    private <T extends Number > T scanTInteger() throws IOException, NumberFormatException
{
    T number = 0;

但我不知道如何做泛型,如int,short,long。对于对象来说很简单。 是否有方法。 编辑 好吧,我知道如何通过通用功能来做到这一点。我将只使用原始类型的长和最大尺寸,并在最后转换它。如果有人发现如何处理通用,我会很高兴:)

1 个答案:

答案 0 :(得分:3)

您可以创建自己的类来包装这三种类型中的任何一种,然后在该类的代码中处理它们。您不会拥有任何特定于语言的自动处理,自动装箱等,但这样可以满足您的要求。

然而,在我看来,制作一个函数的主要原因是一次编写一些逻辑而不是三次。我建议为每种数据类型设置不同的方法,然后让这三种方法分别调用一个包含逻辑的方法。它可以(应该)是私有的,因此隐藏你所做的任何处理(在你的中心逻辑之前和/或之后)来容纳所有三种类型,从任何一点调用它们都很容易,因为原语不一定是插入到包装器中,并且使用3个单行方法而不是一个通用方法对于维护者或用户来说都不是很麻烦。

换句话说,在你的情况下使用仿制药真的值得吗?它们真的意味着用于类,而不是原语。