gpt4 book ai didi

java - 返回值-Java API设计VS。语言接口(interface)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:04 24 4
gpt4 key购买 nike

我以前经常用C,现在用Java。我有一个关于 JAVA API 设计的问题。在 C 中,我总是使用 int 作为有意义的返回值,并将多个对象(其中一些将被更改)放入参数中。例如,

int foo(int x, int y, int *result)
{
*result=x+y;
return SUCCESS;
}

在Java中,按引用传递似乎很模糊,把返回的对象放在参数中就好了?例如,

Class Person{
...
}

两个 API:

public Person bar()          // return value is the object 

对比

public int bar(Person p)     // return value is passed by reference

此外,如何在一个函数中更改多个对象?返回列表可能不优雅。

public int zoo(Person p, Alien x)   // both p and x will be changed

编辑1

这个问题归结为两个。

1) 如果我们想在一个函数中改变对象,这些对象应该作为参数传递(作为可变对象)?

2) 调用者如何通过返回码或其他方式(如异常)知道返回状态?

最佳答案

一个主要区别是 Java 从一开始就有异常和异常处理。这意味着不需要返回“SUCCESS”。如果它完全返回,而不是抛出异常,那么它就成功了。

Java 有引用传递。它所拥有的是指针。当您调用类似 public int bar(Person p) 的方法时,p 是指向 Person 对象的指针,除非它为 null。

关于java - 返回值-Java API设计VS。语言接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981379/

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