繁体   English   中英

如何使用Java访问类的成员

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM