我正在尝试用Java创建一个日历,用于存储医生预约等事件。我计划将这些事件存储为String数组,包含事件的名称,事件的位置以及时间。事件。但是,为了生成新事件,数组需要具有唯一的名称,我希望这些名称是它们出现的日期。为此,我计划制作一个方法,将数组的新名称作为变量,然后使用该变量作为数组的名称(如下所示):
public static void addInformation(String eventLabel) {
String eventName = JOptionPane.showInputDialog(null,"What yould you like the event to be called?");
String eventLocation = JOptionPane.showInputDialog(null, "Where will this event take place?");
String eventTime = JOptionPane.showInputDialog(null, "What time will this event take place? Input as: \"hours:minutes\" using a 24 hour clock.");
String[] eventLabel = {eventName, eventLocation, eventTime};
events.add(newEvent);
}
当我尝试这个时,我收到一条错误说:eventLabel已在addInformation中定义(java.lang.String)
有没有办法使用参数为变量命名数组?任何帮助,将不胜感激。提前谢谢。
编辑:
似乎你不能拥有变量变量名。有没有办法在每次调用此方法时创建一个唯一的数组?
答案 0 :(得分:1)
您的方法声明的eventLabel
类型为String
。您尝试将其重新定义为String[]
。试试String[] eventLabelArray
。
热门舔是正确的 - 您无法执行addInformation('Arr')
之类的操作并将eventLabel
命名为'Arr'
并致电Arr[0]
。为什么你需要它变量?
答案 1 :(得分:1)
您要做的就是使用变量名来创建变量名,我不确定是否可以这样做。
但地图可用于解决您的问题。匹配将提供您想要的完全相同的功能
例如:
Map<String, Something> myMap = new HashMap<String, Something>();
String name = eventName + eventLocation + eventTime;
myMap.put(name, new something);
答案 2 :(得分:1)
使用HashMap
。对于每个条目,使用eventLabel
参数设置密钥,并将值设置为数组。这样,您将为每个“数组”命名(在这种情况下,这将是HashMap
中的条目)。
答案 3 :(得分:0)
eventLabel
既用作方法中的局部变量,也用作传入参数。给出两个不同的名称,这应该可以解决您的问题。
答案 4 :(得分:0)
您不能使用与传递给函数的变量(String eventLavel
)相同的名称
public static void addInformation(String eventLabel){
String eventName = JOptionPane.showInputDialog(null,"What yould you like the event to be called?");
String eventLocation = JOptionPane.showInputDialog(null, "Where will this event take place?");
String eventTime = JOptionPane.showInputDialog(null, "What time will this event take place? Input as: \"hours:minutes\" using a 24 hour clock.");
String[] arr = {eventName, eventLocation, eventTime}; // some other name!
events.add(arr);
}
答案 5 :(得分:0)
以这种方式思考问题很好,但我认为你正试图解决一个无问题。
每次使用此方法时,是否有办法创建唯一的数组 叫?
是的,它是免费的 - 您无需做任何事情。因为正在方法内创建数组,所以每次都会创建一个新数组。正如其他人所说,只需使用不同的变量名称(不是eventLabel
),你就可以了。