[英]How to access members of a class in Java
如果我知道成员的属性,可以获取其余属性吗?
我正在创建这样的成员:
ArrayList<Events> eventList = new ArrayList<Events>();
for (int i = 0; i < elist.length(); i++){
JSONObject e = elist.getJSONObject(i);
//store each item we want into a variable
String id = e.getString(TAG_id);
String event = e.getString(TAG_event);
String eventCity = e.getString(TAG_city);
//add the event
eventList.add(new Event(id, event.toUpperCase(), eventCity));
}
这是班级
public class Event {
private String id;
private String event_name;
private String city;
public Event(String i, String e, String c){
id = i;
event_name = e;
city = c;
}
public String getId(){
return id;
}
public String getEventName(){
return event_name;
}
public String getCity(){
return city;
}
public String toString(){
return event_name;
}
}
因此,如果我知道班上发生什么事件,我可以得到Id和City吗?
到目前为止,我唯一想做的是:
String show = eventList.get(1).toString();
但是,如果我不知道索引怎么办?
这是一种方法:
public String getEventById(List<Event> eventList, String id) {
for (Event event : eventList) {
if (event.getId().equals(id)) {
return event.getEvent();
}
}
return null;
}
因此,我认为您在理解此处使用的各种数据结构时遇到了一些麻烦。 让我们看看我是否可以从简单开始。 因此,给定一个Event实例,您可以获取执行以下操作的各个字段:
Event evt = ...
System.out.println( evt.getEvent() );
System.out.println( evt.Id() );
System.out.println( evt.getCity() );
要获得各个字段,您需要具有指向Event的单个实例的变量。 现在看来,您已经在ArrayList中存储了几个Event实例。 因此,您可能希望对所有事件进行一些操作,在这种情况下,您希望遍历数组中的每个实例并执行以下操作:
for( Event evt : allEvents ) {
System.out.println( evt.getId() );
System.out.println( evt.getEvent() );
System.out.println( evt.getCity() );
}
那将打印出allEvents ArrayList中的所有事件。 您还可以编写一种方法来根据给定的事件ID查找事件。
public Event findEvent( String id, List<Event> allEvents ) {
for( Event evt : allEvents ) {
if( evt.getId().equals(id) ) {
return evt;
}
}
return null;
}
然后像这样使用它:
Event evt = findEvent( "someID", allEvents );
System.out.println( evt.getId() );
System.out.println( evt.getCity() );
System.out.println( evt.getEvent() );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.