4

可以创建一组日历对象吗?

如果是,如何做到这一点?这段代码肯定会出错

Calendar cal[length];     
//loop for initialising all the objects in cal[] array

如果不是,还有什么其他方法可以获取“n”个日历对象?我需要这个重复警报,设置在不同的时间。

4

9 回答 9

3

你总能做到Calendar[] cal = new Calendar[length];

您也可以使用 ArrayList,例如:

List<Calendar> list = new ArrayList<Calendar>();

然后还有很多方便的方法,比如add(Calendar calendar);

然后:

您可以使用for (int x = 0; x < list.size(); x++)

或者for (Calendar cal : list)

这对数组也有效。里面供您使用getCalendar()或您需要的new GregorianCalendar()任何东西。Calendar

于 2012-07-06T14:19:32.243 回答
2

另一种方法是使用java.util.Timerjava.util.TimerTask安排重复警报:

Timer t = new Timer();
Calendar c = Calendar.getInstance();

t.schedule(
    new TimerTask()
    {
        public void run()
        {
            System.out.println("alarm1");
        }
    },
    c.getTime());
于 2012-07-06T14:20:31.790 回答
1

日历 cal[] = 新日历[100];

于 2012-07-06T14:19:05.317 回答
0

看看这个Java文档站点。在那里你可以找到如何使用数组,这个例子非常有用。实际上,您只需要根据您的情况将其更改intCalendar

于 2012-07-06T14:20:17.637 回答
0

Calendarabstract类。所以你应该用一些子类来初始化Calendar变量/数组,这不是抽象的。例如:

Calendar[] calendars = new Calendar[1];
calendars[0] = new GregorianCalendar();
于 2012-07-06T14:22:37.183 回答
0

在 Java 中创建数组的正确语法是:

日历[] cal = 新日历[长度];

然后您可以初始化各个元素。

于 2012-07-06T14:23:41.583 回答
0

可能更好的解决方案是使用这样的代码:

ArrayList<Calendar> list = new ArrayList<Calendar>();

现在使用循环逻辑:

Calendar cal = Calendar.getInstance();

使用 cal 设置值并将其添加到 ArrayList :)

这是因为它将赋予您动态添加/删除项目的能力。

于 2012-07-06T14:23:48.900 回答
0
    Calendar[] calendars = new Calendar[length];
    for (int i = 0; i < length; i++) {
        calendars[i] = Calendar.getInstance();
    }
于 2012-07-06T14:26:05.000 回答
0

new在 Java 中,除非您使用关键字,否则不会分配对象。这与 C++ 中的 new 仅用于动态分配内存不同。要实现您想要做的事情,请执行以下操作:

Calendar cal[] = new GregorianCalendar[length];

您可能会发现这些链接很有帮助: http: //docs.oracle.com/javase/6/docs/api/java/util/Arrays.html http://docs.oracle.com/javase/tutorial/java/nutsandbolts/数组.html

此外,在 Java 中,列表通常优先于数组使用,因为它们使用起来更方便,并且包含您很可能需要访问和操作的大多数函数。使用列表如下:

List<Calendar> calendars = new ArrayList<Calendar>();
for(int i=0; i<length; i++) {
    calendars.add(myCalendar);
}
于 2012-07-06T14:26:55.120 回答