Java 无法在多个对象上设置值

Java 无法在多个对象上设置值,java,Java,我有一个我创建的对象叫做annuals。。。我有这个对象的getter和setter,它实现了comparable。当我创建多个该对象以添加到列表中时,我最终得到一个具有值的对象,但所有后续对象都具有空值。我如何防止这种情况?代码按对象和创建对象进行分解 先谢谢你 对象: import java.math.BigDecimal; import java.util.Comparator; import java.util.Date; /** * @author * */ public

我有一个我创建的对象叫做annuals。。。我有这个对象的getter和setter,它实现了comparable。当我创建多个该对象以添加到列表中时,我最终得到一个具有值的对象,但所有后续对象都具有空值。我如何防止这种情况?代码按对象和创建对象进行分解

先谢谢你

对象:

import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Date;


/**
 * @author 
 *
 */
public class Annuals implements Comparable<Annuals>
{

    private BigDecimal value;
    private Date dateCalculated;
    private BigDecimal dataYear;
    private String type;
    /**
     * @return the value
     */
    public BigDecimal getValue()
    {
        return value;
    }
    /**
     * @param value the value to set
     */
    public void setValue(BigDecimal value)
    {
        this.value = value;
    }
    /**
     * @return the dateCalculated
     */
    public Date getDateCalculated()
    {
        return dateCalculated;
    }
    /**
     * @param dateCalculated the dateCalculated to set
     */
    public void setDateCalculated(Date dateCalculated)
    {
        this.dateCalculated = dateCalculated;
    }
    /**
     * @return the dataYear
     */
    public BigDecimal getDataYear()
    {
        return dataYear;
    }
    /**
     * @param dataYear the dataYear to set
     */
    public void setDataYear(BigDecimal dataYear)
    {
        this.dataYear = dataYear;
    }
    /**
     * @return the type
     */
    public String getType()
    {
        return type;
    }
    /**
     * @param type the type to set
     */
    public void setType(String type)
    {
        this.type = type;
    }
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString()
    {
        return "Annuals [value=" + value + ", dateCalculated=" + dateCalculated + ", dataYear=" + dataYear + ", type="
                + type + "]";
    }
    public static Comparator<Annuals> yearComparator = new Comparator<Annuals>()
    {

        @Override
        public int compare(Annuals o1, Annuals o2)
        {
            return o1.getDataYear().compareTo(o2.getDataYear());
        }
    };

    @Override
    public int compareTo(Annuals o)
    {
        return this.value.compareTo(o.value);
    }
}
import java.math.BigDecimal;
导入java.util.Comparator;
导入java.util.Date;
/**
*@作者
*
*/
公共类年报
{
私有大十进制值;
计算私人日期;
私营部门每年;
私有字符串类型;
/**
*@返回值
*/
公共BigDecimal getValue()
{
返回值;
}
/**
*@param value要设置的值
*/
公共无效设置值(BigDecimal值)
{
这个值=值;
}
/**
*@返回计算的日期
*/
公共日期getDateCalculated()
{
计算返回日期;
}
/**
*@param dateCalculated要设置的日期
*/
公共作废setDateCalculated(日期计算)
{
this.datecomputed=datecomputed;
}
/**
*@返回数据年
*/
公共BigDecimal getDataYear()
{
返回数据年;
}
/**
*@param dataYear要设置的数据年
*/
公共无效setDataYear(BigDecimal数据年)
{
this.dataYear=dataYear;
}
/**
*@返回类型
*/
公共字符串getType()
{
返回类型;
}
/**
*@param type要设置的类型
*/
公共void集合类型(字符串类型)
{
this.type=type;
}
/*(非Javadoc)
*@see java.lang.Object#toString()
*/
@凌驾
公共字符串toString()
{
return“Annuals[value=“+value+”,dateCalculated=“+dateCalculated+”,dataYear=“+dataYear+”,type=”
+类型+“]”;
}
公共静态比较器yearComparator=新比较器()
{
@凌驾
公共整数比较(年度o1,年度o2)
{
返回o1.getDataYear().compareTo(o2.getDataYear());
}
};
@凌驾
公共国际比较(年度o)
{
返回此.value.compareTo(o.value);
}
}
正在创建对象:

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class CreateCompanies
{
    private List<CompanyInfoDO> companiesList = new ArrayList<CompanyInfoDO>(); 
    /**
     * @return the companiesList
     */
    public List<CompanyInfoDO> getCompaniesList()
    {
        return companiesList;
    }

    /**
     * @param companiesList the companiesList to set
     */
    public void setCompaniesList(List<CompanyInfoDO> companiesList)
    {
        this.companiesList = companiesList;
    }

    public CreateCompanies()
    {
        CompanyInfoDO company = new CompanyInfoDO();
        company.setCompanyName("Ford");
        company.setDate(Calendar.getInstance().getTime().toString());
        company.setShares("39000000000");
        company.setTicker("f");
        company.setStockPrice(BigDecimal.valueOf(11.14));
        company.setTotalOutstandingSharesAnnuals(getTotalSharesOutstandingList());
        company.setNetIncomeAnnuals(getNetIncomeList());
        companiesList.add(company);

    }

    private List<Annuals> getTotalSharesOutstandingList()
    {
        List<Annuals> annualsList = new ArrayList<Annuals>();
        Annuals annual = new Annuals();
        annual.setDataYear(BigDecimal.valueOf(2013));
        annual.setValue(BigDecimal.valueOf(3984.0));
        annual.setType(InvestConstants.TOTAL_SHARES_OUTSTANDING);

        Annuals annual1 = new Annuals();
        annual.setDataYear(BigDecimal.valueOf(2014));
        annual.setValue(BigDecimal.valueOf(4009.0));
        annual.setType(InvestConstants.TOTAL_SHARES_OUTSTANDING);

        Annuals annual2 = new Annuals();
        annual.setDataYear(BigDecimal.valueOf(2015));
        annual.setValue(BigDecimal.valueOf(4031.0));
        annual.setType(InvestConstants.TOTAL_SHARES_OUTSTANDING);

        Annuals annual3 = new Annuals();
        annual.setDataYear(BigDecimal.valueOf(2016));
        annual.setValue(BigDecimal.valueOf(3931.0));
        annual.setType(InvestConstants.TOTAL_SHARES_OUTSTANDING);

        annualsList.add(annual);
        annualsList.add(annual1);
        annualsList.add(annual2);
        annualsList.add(annual3);
        return annualsList;
    }

    private List<Annuals> getNetIncomeList()
    {
        List<Annuals> annualsList = new ArrayList<Annuals>();
        Annuals annual = new Annuals();
        annual.setDateCalculated(Calendar.getInstance().getTime());
        annual.setType(InvestConstants.NET_INCOME);
        annual.setValue(BigDecimal.valueOf(11953.0));
        annual.setDataYear(BigDecimal.valueOf(2013));
        System.out.println("Annual: "+ annual.toString());
        annualsList.add(annual);

        Annuals annual2 = new Annuals();
        annual.setDateCalculated(Calendar.getInstance().getTime());
        annual.setType(InvestConstants.NET_INCOME);
        annual.setValue(new BigDecimal(1231.0));
        BigDecimal val2 = new BigDecimal(2014);
        annual.setDataYear(val2);
        System.out.println("Annual 2 : "+ annual2.toString());

        Annuals annual3 = new Annuals();
        annual.setDateCalculated(Calendar.getInstance().getTime());
        annual.setType(InvestConstants.NET_INCOME);
        annual.setValue(BigDecimal.valueOf(7373.0));
        annual.setDataYear(BigDecimal.valueOf(2015));

        Annuals annual4 = new Annuals();
        annual.setDateCalculated(Calendar.getInstance().getTime());
        annual.setType(InvestConstants.NET_INCOME);
        annual.setValue(BigDecimal.valueOf(4596.0));
        annual.setDataYear(BigDecimal.valueOf(2016));

        //annualsList.add(annual);
        annualsList.add(annual2);
        annualsList.add(annual3);
        annualsList.add(annual4);
        System.out.println("Net Annuals List: Creating Company: "+annualsList.toString());
        return annualsList;
    }
import java.math.BigDecimal;
导入java.util.ArrayList;
导入java.util.Calendar;
导入java.util.List;
公营公司
{
私有列表公司列表=新的ArrayList();
/**
*@返回公司列表
*/
公共列表GetCompanyList()
{
返回公司列表;
}
/**
*@param companiesList要设置的companiesList
*/
公共作废集合公司列表(列表公司列表)
{
this.companiesList=companiesList;
}
上市公司()
{
CompanyInfoDO company=新CompanyInfoDO();
公司名称:setCompanyName(“福特”);
company.setDate(Calendar.getInstance().getTime().toString());
公司股份(“39000000000”);
公司名称:setTicker(“f”);
公司设定股票价格(BigDecimal.valueOf(11.14));
company.SetTotalOutstandingSharesAnuals(getTotalSharesOutstandingList());
company.setNetIncomeAnnuals(getNetIncomeList());
公司列表。添加(公司);
}
私有列表GetTotalShareOutstandingList()
{
List annualsList=新建ArrayList();
年度=新年度();
年度设置数据年(BigDecimal.valueOf(2013));
年度设定值(BigDecimal.valueOf(3984.0));
年度setType(已发行股份总数);
年度1=新年度();
年度设置数据年(BigDecimal.valueOf(2014));
年.setValue(BigDecimal.valueOf(4009.0));
年度setType(已发行股份总数);
年报年报2=新年报();
年度.setDataYear(BigDecimal.valueOf(2015));
年.setValue(BigDecimal.valueOf(4031.0));
年度setType(已发行股份总数);
年报年报3=新年报();
年度setDataYear(BigDecimal.valueOf(2016));
年度设定值(BigDecimal.valueOf(3931.0));
年度setType(已发行股份总数);
年度列表。添加(年度);
年度列表。添加(年度1);
年度列表。添加(年度2);
年度列表。添加(年度3);
返回年度列表;
}
私有列表getNetIncomeList()
{
List annualsList=新建ArrayList();
年度=新年度();
annual.setDateCalculated(Calendar.getInstance().getTime());
年度.setType(净收入);
年度设定值(BigDecimal.valueOf(11953.0));
年度设置数据年(BigDecimal.valueOf(2013));
System.out.println(“年度:+Annual.toString());
年度列表。添加(年度);
年报年报2=新年报();
annual.setDateCalculated(Calendar.getInstance().getTime());
年度.setType(净收入);
年度.设定值(新的大十进制(1231.0));
BigDecimal val2=新的BigDecimal(2014年);
年度。设置数据年(val2);
System.out.println(“年度2:+annual2.toString());
年报年报3=新年报();
annual.setDateCalculated(Calendar.getInstance().getTime());
年度.setType(净收入);
年度设定值(BigDecimal.valueOf(7373.0));
年度.setDataYear(BigDecimal.valueOf(2015));
年度4=新年度();
annual.setDateCalculated(Calendar.getInstance().getTime());
年度.setType(净收入);
年度设定值(BigDecimal.valueOf(4596.0));
年度setDataYear(BigDecimal.valueOf(2016));
//年度列表。添加(年度);
年度列表。添加(年度2);
年度列表。添加(年度3);
每年的
Annuals annual1 = new Annuals();
annual.setDataYear(BigDecimal.valueOf(2014));
annual.setValue(BigDecimal.valueOf(4009.0));
annual.setType(InvestConstants.TOTAL_SHARES_OUTSTANDING);
Annuals annual1 = new Annuals();

annual.setDataYear(BigDecimal.valueOf(2014));