所以我的问题是我在Android(Java)上编写了一个带两个双打,两个Int和一个Calendar对象的函数。我相信提供的类允许它在一个单独的线程中运行,AsyncTask只接受一种类型的Object(但允许多个)作为参数,所以我想我可以把它放在List或LinkedList中。
是否有这样的类型允许多种数据类型(Double, Double, Int, Int, Calendar
),或者我是否必须创建自己的对象类?我是一个新手程序员,所以不太复杂可能更好,但我也对最佳解决方案感兴趣。
该函数的作用是将位置(double latitude, double longitude
),几个选项作为整数和日历对象。它需要位置,选项和日期,然后返回该位置的日出时间对象(或日落,具体取决于选项)。感谢您的提示,我理解最好创建一个特殊的对象类,然后传递它,或者覆盖后台线程类,但我对面向对象编程很新,所以开销越少越好(对于现在)。
(更新)经过大量的工作,它最终变得更容易制作数据类类并且只是使用它。最终,正确的方式变得更加容易。谁想到了。
答案 0 :(得分:16)
只需
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 :(得分:1)
最不复杂的方法是使列表具有Object
类型,并以这种方式将项目存储在List中。
答案 2 :(得分:0)
所以你真的在寻找错误问题的答案。你遇到的问题不是你所描述的问题,而是你需要问的问题。换句话说,如果你觉得你做错了什么或试图将方形钉子放入圆孔中,那是因为你可能是。如果您完全控制代码,请查找实现的替代方法以获得所需结果。我100%肯定天真的解决方案,一个包含Objects
的列表很糟糕。祝你好运。