【问题标题】:Type of List to Store Multipe Data Types存储多种数据类型的列表类型
【发布时间】:2009-12-15 06:04:37
【问题描述】:

所以我的问题是我在 Android (Java) 上编写了一个函数,它需要两个 Doubles、两个 Int 和一个 Calendar 对象。我相信提供的类允许它在单独的线程中运行,AsyncTask,只接受一种类型的对象(但允许多个)作为参数,所以我想我可以把它放在 List 或 LinkedList 或其他东西中。

是否存在允许多种数据类型的类型 (Double, Double, Int, Int, Calendar),还是我必须创建自己的对象类?我是新手程序员,所以不太复杂可能更好,但我也对最佳解决方案感兴趣。

该函数的作用是获取一个位置 (double latitude, double longitude)、几个整数选项和一个日历对象。它获取位置、选项和日期,然后返回该位置的日出(或日落,取决于选项)的时间对象。感谢您的提示,我知道最好创建一个特殊的对象类并传递它,或者覆盖后台线程类,但我对面向对象编程很陌生,所以开销越少越好(对于现在)。

(更新)经过大量工作,最终制作数据类型类并使用它变得更加容易。最终证明正确的方法更容易。谁会想到。

【问题讨论】:

    标签: java android list


    【解决方案1】:

    只是

    List<Object> objects = new ArrayList<Object>();
    

    还是这样?

    不过,我不推荐这种方法。数据必须以某种方式相互关联。为什么要让自己变得困难并在集合中混合不同类型的数据?你最后需要它做什么?只是通过层传递它?您也可以为此创建一个自定义 javabean 对象(也称为值对象或数据传输对象)。比如:

    public class Data {
        private Double double1;
        private Double double2;
        private int int1;
        private int int2;
        private Calendar calendar;
        // Add/generate getters and setters.
    }
    

    【讨论】:

    • 这是我要推荐的。 +1
    • 这个类需要一个属性来告诉你实际设置了其他属性中的哪一个。
    • @mheathershaw:谢谢。 @No Refunds:OP 没有提到这一点,而且它通常也不是 javabean 的责任,所以这没有任何意义。
    【解决方案2】:

    最简单的方法是让列表为Object 类型并将项目存储在列表中。

    【讨论】:

      【解决方案3】:

      所以你真的在寻找错误问题的答案。您遇到的问题不是您所描述的问题,而是您需要提出的问题。换句话说,如果你感觉自己做错了什么或试图将方形钉插入圆孔,那是因为你可能是。如果您可以完全控制代码,请寻找其他实现方法以获得您想要的结果。我 100% 确定天真的解决方案,一个包含 Objects 的列表是不好的。 :) 祝你好运。

      【讨论】:

        猜你喜欢
        • 2013-08-29
        • 2011-05-19
        • 1970-01-01
        • 2021-12-27
        • 2020-02-16
        • 2021-06-16
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多