gpt4 book ai didi

java - 谁负责对象转换?

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

假设我有 A 类和 B 类。 ClassA是 Controller ,ClassB是DAO。 ClassA 通过某种简单的方式生成一个字符串。然后它需要将此字符串存储在数据库中,因此它调用 ClassB 中的someMethod。但是,数据库在存储之前需要该值是 Long 类型。在这种情况下,谁负责将 String 转换为 Long?

选项 A:ClassA 负责,并且具有在调用 ClassB#someMethod(Long theLong) 之前将 String 转换为 Long 的逻辑。

选项 B:ClassB 负责,并且具有将 String 转换为 Long 的逻辑。 ClassA 将调用 ClassB#someMethod(String theString)

在最佳实践的世界中,哪一个是正确的?

最佳答案

我认为使用两种类型参数的重载方法会很有用。

例如,在我的一些类中,特别是在 setter 方法中,我有同时采用 String 和 int/long 的方法。原因是我有一种将实例序列化为 XML 的机制,当我反序列化它时,我使用 setField(String) 方法,该方法将字段转换为其整数/长类型,因此类本身使用 setField(String) 变体。当从头开始构造类时,我通常会直接使用 setField(int)

public void setField (String val)
{
try {
int v = Integer.parseInt(val);
setField (v);
}
catch (..) {
...
}
}

public void setField (int val)
{
// can add some range checks here
this.val = val;
}

关于java - 谁负责对象转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293610/

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