You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于UML图的Java代码实现疑问:对象数组相关困惑

UML方法的Java实现说明

关于getSize(Scanner sc)的返回值

getSize方法返回的Object[]就是方法内部创建的对象数组,不属于类的成员变量——除非UML图额外标注了类的成员数组,否则你只需要在方法内部按需创建、填充后返回即可。

方法实现示例

假设这两个方法的业务逻辑是:

  • getSize:从控制台获取用户输入的数组长度,再获取对应数量的元素存入对象数组后返回
  • friendOrFamily:让用户选择关系类型(1=朋友,2=家人),返回选择的数字

对应的Java代码实现如下:

import java.util.Scanner;

public class YourClassName { // 替换成UML里的类名
    public Object[] getSize(Scanner sc) {
        // 示例逻辑:获取数组长度和元素
        System.out.print("请输入数组长度:");
        int length = sc.nextInt();
        sc.nextLine(); // 处理换行符残留

        Object[] resultArray = new Object[length];
        for (int i = 0; i < length; i++) {
            System.out.print("请输入第" + (i+1) + "个元素:");
            resultArray[i] = sc.nextLine();
        }
        return resultArray;
    }

    public int friendOrFamily(Scanner sc) {
        // 示例逻辑:选择关系类型
        System.out.println("请选择关系类型:");
        System.out.println("1. 朋友");
        System.out.println("2. 家人");
        int choice = sc.nextInt();
        // 输入合法性校验
        while (choice != 1 && choice != 2) {
            System.out.print("输入无效,请重新选择(1或2):");
            choice = sc.nextInt();
        }
        return choice;
    }
}

关键注意点

  • 方法参数Scanner sc是外部传入的扫描器,无需在方法内重新创建,避免重复打开输入流导致异常
  • Object[]可以存储任意类型的对象,如果UML隐含了元素类型,可将Object[]替换为对应类型数组(比如String[])
  • 上述示例是通用场景实现,具体逻辑需匹配UML对应的业务需求,可根据实际情况调整

内容的提问来源于stack exchange,提问作者Lonely Pine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:25:23