gpt4 book ai didi

java - : overload or unique method name 哪个更好

转载 作者:行者123 更新时间:2023-12-02 10:25:58 25 4
gpt4 key购买 nike

我有一个实用程序类以及我最初是如何编写它的:

class UtilsWithOverloading {
public static <T extends Item> T fill(T item, String name) {
item.setName(name);
return item;
}

public static <T extends Item> T fill(T item, Long id) {
item.setId(id);
return item;
}

public static <T extends Item> T fill(T item, Double diameter) {
item.setDiameter(diameter);
return item;
}
}

但是在这个类中,当我将第二个参数传递给null时,测试时出现了问题。之后我决定使用原语重写此类:

class UtilsWithOverloadingWithPrimitive {
public static <T extends Item> T fill(T item, String name) {
item.setName(name);
return item;
}

public static <T extends Item> T fill(T item, long id) {
item.setId(id);
return item;
}

public static <T extends Item> T fill(T item, double diameter) {
item.setDiameter(diameter);
return item;
}
}

而且这个类也可以在不使用重载的情况下重写:

class UtilsWithUniqNaming {
public static <T extends Item> T fillByName(T item, String name) {
item.setName(name);
return item;
}

public static <T extends Item> T fillById(T item, Long id) {
item.setId(id);
return item;
}

public static <T extends Item> T fillByDiameter(T item, Double diameter) {
item.setDiameter(diameter);
return item;
}
}

我的问题是,在我的情况下使用什么更好?分享一下你的经验,哪个类在Java代码中会更优化

class Item {
private String name;
private Long id;
private Double diameter;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public Double getDiameter() {
return diameter;
}

public void setDiameter(Double diameter) {
this.diameter = diameter;
}
}

最佳答案

在这种情况下,我希望有不同的唯一方法名称,因为您的示例基本上取决于第二个参数。

如果我的函数采用不同数量的参数,我只会使用函数重载。

关于java - : overload or unique method name 哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955768/

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