2015-05-29 47 views
-1

我有它具有特定數量的元件的ArrayList,每個由兩個值(天,分) company.getAnnouncements().get(0)得到數組列表元素的java的特定值

的上面的代碼將在數組列表中檢索所述第一元件,但我只想要那個元素的美分。 你會怎麼做?

public class Announcement implements Event { 
private int day ; 
private String statement; 
    public Announcement(int day, String statement) { 
      this.day = day; 
      this.statement = statement; 
    } 

    @Override 
    public String printEvent() { 

     return statement; 
    } 

    public int getDay() { 
     // TODO Auto-generated method stub 
     return day; 
    } 


} 

這是公告類,我有和股息擴展它

public class Dividend extends Announcement { 

    private int cents; 

     public Dividend(int day, int cents) { 
      super(day,""); 
      this.cents=cents;  

     } 


     public double getCents() { 
     return (double) (cents)/100; 
     } 

     public void setCents(int cents) { 
      this.cents = cents; 
     } 


     @Override 
     public String printEvent() { 
      // TODO Auto-generated method stub 
      return "Dividend of " + getCents() + " per share" ; 
     } 

    }` 

而公司類

public class Company implements Event { 

private String name; 
private String code; 
private int currShares; 
private double previousPrice; 
private ArrayList <Dividend> dividends; 
private ArrayList <Announcement> announcements; 
private ArrayList <Trade> trades; 

public Company(String code, String name, int currShares, 
     double previousPrice) { 
    this.name = name; 
    this.code = code; 
    this.setCurrShares(currShares); 
    this.previousPrice = previousPrice; 
    this.trades = new ArrayList <Trade>(); 
    this.dividends = new ArrayList <Dividend>(); 
    this.announcements = new ArrayList <Announcement>(); 
} 

public void addDividend(int day , int cents){ 
    dividends.add(new Dividend(day, cents)); 

} 

public void addAnnouncement(int day , String statement){ 
    announcements.add(new Announcement(day, statement)); 

} 

public void addTrade(int day , int sharesTraded , double pricePerShare){ 
    trades.add(new Trade(day, sharesTraded, pricePerShare)); 

} 


public String printEvent() { 

    return "Printed!!"; 
} 

public String getCode() { 
    return code; 
} 

public ArrayList<Dividend> getDividends() { 
    return dividends; 
} 

public void setDividends(ArrayList<Dividend> dividends) { 
    this.dividends = dividends; 
} 

public ArrayList<Announcement> getAnnouncements() { 
    return announcements; 
} 

public void setAnnouncements(ArrayList<Announcement> announcements) { 
    this.announcements = announcements; 
} 

public ArrayList<Trade> getTrades() { 
    return trades; 
} 

public void setTrades(ArrayList<Trade> trades) { 
    this.trades = trades; 
} 

public String getName() { 
    return name; 
} 


public void addAnnouncement(int day, int cent) { 
    // TODO Auto-generated method stub 
    announcements.add(new Dividend(day,cent)); 
} 

public int getCurrShares() { 
    return currShares; 
} 

public void setCurrShares(int currShares) { 
    this.currShares = currShares; 
} 


} 
+2

根據您提供的內容,我會通過一組複雜的反射和概率性字段名稱匹配來實現這一點。但是,如果你能告訴我們你究竟從列表中得到了什麼,它會更容易? –

+0

有沒有辦法可以爲我的問題添加更多信息? – MrKeyboard

+0

我需要檢索關於擴展「公告」類的「股息」類的信息。股息類具有日和美分作爲其屬性並延伸了具有日和語句作爲屬性的公告類。 – MrKeyboard

回答

4

剛訪問它,你會與任何其他的吸氣劑(這是假設,AnnouncementgetCents方法):

int cents = company.getAnnouncements().get(0).getCents(); 

或者,如果你沒有一個getCents方法(其中,順便說一句,你應該!):

int cents = company.getAnnouncements().get(0).cents; 

我認爲intcents類型,你必須向我們提供什麼Announcement外觀喜歡說清楚,你將如何訪問它。

更新

您的編輯之後,它似乎如果你不想getAnnouncements而是getDividends做。這看起來有點像這樣:

double cents = company.getDividends().get(0).getCents(); 
+0

Thankyou,如果你喜歡看一下,我添加了更多的代碼。 – MrKeyboard

+0

@ 30088121看起來'公司'沒有'getAnnouncements'方法。即使這樣做了,如果這似乎是你想要的,爲什麼不從公司發佈公告而不是股息呢? – germi

+0

嘿@germi對不起夥伴,我沒有添加整個公司類,因爲它的任務和我的老師wouldnt真的很感激我有整個任務:/ – MrKeyboard

0

我相信company.getAnnouncements()回報你的list,並通過company.getAnnouncements().get(0)你到bean對象。

有必須一getCents()或東西在bean類,你最終的代碼看起來應該像company.getAnnouncements().get(0).getCents()

,或者如果cents是在bean類的屬性時,你也可以做company.getAnnouncements().get(0).cent

+0

Thankyou,我添加了更多的代碼如果你喜歡看一看。 – MrKeyboard

-1

您需要知道值對象的類型以便知道如何訪問它。

如果它的另一個數組列表,你會怎麼做:

INT美分= company.getAnnouncements()得到(0)獲得(1);

+0

Thankyou,如果你喜歡看看,我增加了更多的代碼。 – MrKeyboard

相關問題