【问题标题】:Java Table of dynamic ObjectsJava 动态对象表
【发布时间】:2015-03-16 15:39:56
【问题描述】:

我正在编写一个 Java 程序,但不知道如何开始。作业是:

我必须创建一个包含 c - 列和 r- 行的表。这个参数是我读到的第一个(都可以是100)。所以这部分很清楚。然后,关于列数(我猜是使用 for 语句)我必须设置它们的类型。例如,如果我输入 c = 5 和 r=5,我将有一个 5x5 的表。然后我需要读取 5(c) 个输入,其中 1 个表示整数,2 个表示字符串,3 个表示布尔值。

所以如果我输入:1 1 2 2 3,这意味着我将有前 2 个整数类型,接下来的 2 个作为字符串,最后一个是布尔类型。我想我需要像这样创建一个对象,但不确定如何“动态地”创建它——在我得到这个类型之后。

之后,我将读取每个具有 5 个参数的 5(r) 对象。下一步我会自己尝试,只是不确定如何实现这样的输入 - 使用我设置的类型创建对象。

这是我目前得到的:

import java.util.Scanner;
public class Tables {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int r = sc.nextInt();
        int c = sc.nextInt();
        int [] types = new int [c];


        for (int i = 0; i < c; i++){
            types[i] = sc.nextInt();
        }

        //have types but how to create an object now?

    }
}

【问题讨论】:

    标签: java object dynamic


    【解决方案1】:

    有很多方法可以做到这一点,但在你的情况下,我会使用最简单和最直接的方法,即switch 声明:

    for (int i = 0; i < r; i++) {
        for (int j = 0; j < c; c++) {
    
            Object value = null;
    
            switch (types[j]) {
                case 1:
                    value = sc.nextInt();
                    break;
                case 2:
                    value = sc.next();
                    break;
                case 3:
                    value = sc.nextBoolean();
                    break;
            }
    
            // Do something with 'value' here.
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 2017-11-24
      • 2021-08-13
      • 2012-05-09
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多