Java-Objekt in der Liste wird nicht gefundenJava

Java-Forum
Guest
 Java-Objekt in der Liste wird nicht gefunden

Post by Guest »

Ich habe ein Problem. Ich habe die folgende Klasse:

Code: Select all

public class Cross implements Comparable {

private Long openTime;
private String market;
private String coin;
private String period;
private String metric1;
private String metric2;
private Double close;
private String trend;

public Long getOpenTime() {
return this.openTime;
}

public void setOpenTime(long openTime) {
this.openTime = openTime;
}

public String getMarket() {
return this.market;
}

public void setMarket(String market) {
this.market = market;
}

public String getCoin() {
return this.coin;
}

public void setCoin(String coin) {
this.coin = coin;
}

public String getPeriod() {
return this.period;
}

public void setPeriod(String period) {
this.period = period;
}

public String getMetric1() {
return this.metric1;
}

public void setMetric1(String metric1) {
this.metric1 = metric1;
}

public String getMetric2() {
return this.metric2;
}

public void setMetric2(String metric2) {
this.metric2 = metric2;
}

public Double getClose() {
return this.close;
}

public void setClose(double close) {
this.close = close;
}

public String getTrend() {
return this.trend;
}

@Override
public boolean equals(Object object) {

if (object != null && object instanceof Cross) {
Cross cross = (Cross) object;
return (
openTime.equals(cross.getOpenTime()) &&
market.equals(cross.getMarket()) &&
coin.equals(cross.getCoin()) &&
period.equals(cross.getPeriod()) &&
metric1.equals(cross.getMetric1()) &&
metric2.equals(cross.getMetric2())
);
}

return false;
}

@Override
public int compareTo(Cross o) {
return this.getOpenTime().compareTo(o.getOpenTime());
}

}
Jetzt habe ich eine Liste mit 500 Objekten dieser Elemente. Hier sind die ersten 4 angezeigt:

Code: Select all

{ openTime='1504332000000', market='USDT', coin='ETH', period='2h', metric1='EMA12', metric2='EMA26', close='363.7', trend='Down'}
{ openTime='1504663200000', market='USDT', coin='ETH', period='2h', metric1='EMA12', metric2='EMA26', close='325.73', trend='Up'}
{ openTime='1504879200000', market='USDT', coin='ETH', period='2h', metric1='EMA12', metric2='EMA26', close='294.05', trend='Down'}
{ openTime='1505181600000', market='USDT', coin='ETH', period='2h', metric1='EMA12', metric2='EMA26', close='304.41', trend='Up'}
In einer Variablen habe ich die Epoche eines bestimmten Datums und einer bestimmten Uhrzeit gespeichert und möchte damit das erste gültige Kreuz finden, also habe ich Folgendes versucht:

Code: Select all

private Cross getValidCross(List crossList, LocalDateTime runDateTimeGMT0) {
long searchEpoch = runDateTimeGMT0.toEpochSecond(ZoneOffset.UTC) * 1000;
return crossList.stream().filter(cross -> cross.getOpenTime() < searchEpoch).max(Cross::compareTo).orElse(null);
}
Aber dieser Code gibt den Wert null zurück Wenn meine Suchepoch zum Beispiel ist: 1514764800000. In der Liste sehe ich mehrere Objekte, die eine niedrigere openTime als die searchEpoch haben. Das Ergebnis, das ich möchte, ist das Kreuz mit der höchsten openTime, aber es muss immer noch kleiner als die searchEpoch sein.
Hier ist der Fehler, den ich erhalte:< /p>

Code: Select all

runDateTimeGMT0: 2018-01-01T00:00
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.hatop.drivers.SimulatorDriver.run(SimulatorDriver.java:297)
at com.hatop.drivers.HatopDriver.main(HatopDriver.java:120)
Caused by: java.lang.NullPointerException: Cannot invoke "com.hatop.models.Cross.getTrend()" because the return value of "com.hatop.drivers.HatopDriver.getValidCross(List, LocalDateTime)"
is null
at com.hatop.strategies.modules.module_java001.run(module_java001.java:186)
... 6 more
Warum ist mein Rückgabewert null?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post