gpt4 book ai didi

java - 在 API 设计中避免原语?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:17 24 4
gpt4 key购买 nike

我正在设计 API。它将有很多方法做同样的事情,但有不同的参数原语。

public void someMethod1(int x);
public void someMethod1(float x);
public void someMethod1(double x);
public void someMethod2(int x, int y);
...
public void someMethod3(int x, int y, int z);
...

由于原语,我不得不复制和粘贴很多,我认为随着时间的推移这是非常难以维护的。避免在方法和构造函数中使用原语是个好主意吗?例如,上面的替换将是:

public <T extends Number> void someMethod1(T x);
public <T extends Number> void someMethod2(T x, T y);
public <T extends Number> void someMethod3(T x, T y, T z);

编辑:

这有什么缺点?

最佳答案

它将可用,因为 Java 1.5 及更高版本中的自动装箱/自动拆箱。您可以将 int 传递给需要 Integer 的对象,反之亦然,转换将自动发生。这同样适用于返回值。

请记住,在您的方法主体中,您对参数的了解不多于它们是某种形式的 Number。这仅适用于您不关心区分整数和浮点表示形式的情况。

它不会提高您的性能 - 转换会有一些小的惩罚,但在您发现瓶颈之前您不应该担心。对于大多数应用程序,差异将是微不足道的。

是否使用 List 而不是数组实际上应该由您的设计决定,但通常建议使用 List 除非必须使用数组。 List 往往更灵活,不需要调整大小,具有 Collections API 等的所有优点,等等。

关于java - 在 API 设计中避免原语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2397352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com