So I have a simple Java class DatedValue as follows:
public class DatedValue<V> implements Comparable<DatedValue>{
private V value;
private Date date;
public DatedValue(V value, Date date){
    this.value = value;
    this.date = date;
}
public V getValue(){
    return value;
}
public Date getDate(){
    return date;
}
@Override
public int compareTo(DatedValue dv) {
    return date.compareTo(dv.date);
}
}
And I have a list of objects of this class, as follows:
List<DatedValue<Float>> list =  new ArrayList<DatedValue<Float>>();
And I can populate this list with DatedValue<Floats>.
However, when I try to use the getValue function of a DatedValue from this list, it returns an Object rather than a Float. I cannot for the life of me figure out why.
Any help is appreciated!
Edit:
Here is the entire context. It will probably be very confusing.
public class MomentumFormula {
private List<DatedValue<Float>> pricedata;
private List<Integer> upmomentumdata;
private List<Integer> downmomentumdata;
public MomentumFormula(String stock, GregorianCalendar startdate,
        GregorianCalendar enddate){
    pricedata = new ArrayList<>();
    upmomentumdata = new ArrayList<>();
    downmomentumdata = new ArrayList<>();
    DBManager db = new DBManager("stockdata");
    try{
        Connection dbconn = db.getConnection();
        Statement stmt = dbconn.createStatement();
        String tablename = stock;
        if(tablename.contains(".")){
            tablename = new StringBuilder("stock").
                    append(tablename.replace(".", "period")).toString();
        }else{
            tablename = new StringBuilder("stock").
                    append(tablename).toString();
        }
        ResultSet rs = stmt.executeQuery(new StringBuilder(
                "SELECT * FROM ").append(tablename).
                append(" WHERE date BETWEEN STR_TO_DATE('").
                append((startdate.get(Calendar.MONTH) + 1)).append(", ").
                append(startdate.get(Calendar.DATE)).append(", ").
                append(startdate.get(Calendar.YEAR)).
                append("', '%m, %d, %Y')").append(" AND ").
                append("STR_TO_DATE('").
                append((enddate.get(Calendar.MONTH) + 1)).append(", ").
                append(enddate.get(Calendar.DATE)).append(", ").
                append(enddate.get(Calendar.YEAR)).
                append("', '%m, %d, %Y')").
                toString());
        while(rs.next()){                
            pricedata.add(new DatedValue<>(rs.getFloat("close"),
                    rs.getDate("date")));
        }
        Collections.sort(pricedata);
        if(pricedata.size() != 0){
            DatedValue<Float> first = pricedata.get(0);
            DatedValue<Float> highesthigh = new DatedValue<>(
                    first.getValue(), first.getDate());
            DatedValue<Float> lowestlow = new DatedValue<>(
                    first.getValue(), first.getDate());
            if(highesthigh.getValue() > lowestlow.getValue()){}
            for(DatedValue v : pricedata){
                if(v.getValue() > highesthigh.getValue()){
                    highesthigh = v;
                }
            }
        }
    }catch(Exception e){
        System.out.println("Exception in MomentumFormula");
        System.out.println(e.toString());
    }
}
}
The error occurs on the line:
if(v.getValue() > highesthigh.getValue()){
Exception in MomentumFormula
java.lang.RuntimeException: Uncompilable source code - bad operand types for binary operator '>'
  first type:  java.lang.Object
  second type: java.lang.Float
 
    