java - 为什么java方法不支持多个返回值?

标签 java oop methods return-value design-principles

<分区>

在使用 Java 应用程序时,我经常会遇到一个问题:为什么 Java 不支持方法的多个返回值?

我知道设计 Java 的人肯定已经思考过这个话题,但我自己思考时没有得到任何答案或特定原因。

最佳答案

如果所有值都是同一类型,您可以只返回它们的数组:

public String[] myMethod{} {}

如果不是,您有多种选择:

丑陋的方法是将所有内容都转换为对象并返回:

public Object[] myMethod{} {}

public List<? extends Object> myMethod() {}

这些实现的问题在于,除非您查看方法实现,否则您真的不知道对象/列表中的内容。因此,如果您知道没有其他人会使用它,它可以成为一条捷径。

有更清洁但更耗时。但这通常是一种很好的做法,因为它包含更多信息:

假设您要返回两个值,一个 int 和一个 String。您需要设计一个代表这两个(或更多值)的对象:

public class MyResponse {
    public String myString;
    public int myInt;
}

并返回 MyResponse 的一个实例。请注意,我在这里公开了属性。围绕这个有多种思想流派。有些人更愿意将它们设为私有(private)并添加 getter/setter 方法。这是给你的作业。

关于java - 为什么java方法不支持多个返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23822349/

相关文章:

java - 在java中使用相同的writeToFile写入不同的数组列表

java - 如何取消从另一个线程发出http请求的线程

java - 尝试在主程序中使用构造函数但已定义构造函数时出错

java - 用 Java 编程数组

java - 设计模式: Callback as a method parameter

java - SwingUtilities.invokeAndWait 不等待?

java - 未设置引导类路径

vb.net - 为什么VB.NET中这个类有参数?

c++ - 使用模板逻辑在运行时从基类转换为派生类

java - 如何使用 main() 中的对象数组访问类私有(private)成员?