У меня есть ArrayList, который я хочу иметь тип Instant, но независимо от того, что я пытаюсь сделать с массивом, он просто не позволяет мне преобразовать его в формат Instant. Ошибка в том, что он пытается добавить String в ArrayList of Instants.
@Data
@RequiredArgsConstructor
@AllArgsConstructor
public static class LiveData {
private final String location;
private final String metric;
private Double data = null;
private Instant timestamp = null;
}
private void onConnectionOpened() {
try {
int i = 0;
final List<Sensor> sensors = clientConnection.querySensors().get();
final List<String> metric = sensors.stream().map(sensor -> sensor.getLocation()).collect(Collectors.toList());
final List<String> location = sensors.stream().map(sensor -> sensor.getMetric()).collect(Collectors.toList());
List<Instant> timestamps = new ArrayList<>();
List<Instant> times = new ArrayList<>();
List<Double> datavalues = new ArrayList<>();
while (i < sensors.size()) {
final DataPoint data = clientConnection.queryValue(new Sensor(location.get(i), metric.get(i))).get();
timestamps.add((Util.TIME_FORMAT.format((new Date(data.getTime()).toInstant()))));
datavalues.add(data.getValue());
i++;
}
i = 0;
List<LiveData> testcol = new ArrayList<>();
while (i < sensors.size()) {
//LiveData temporary = new LiveData(location.get(i), metric.get(i));
LiveData temporary = new LiveData(location.get(i), metric.get(i), datavalues.get(i), timestamps.get(i));
testcol.add(temporary);
i++;
}
ObservableList<LiveData> livedata = FXCollections.observableArrayList(testcol);
Platform.runLater(() ->
tvData.setItems(livedata));
//Thread.sleep(10000);
//onConnectionOpened();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
Я хочу иметь ArrayList of Instants и использовать его следующим образом:
LiveData temporary = new LiveData(location.get(i), metric.get(i), datavalues.get(i), timestamps.get(i));
Для последующего использования в TableView.
Я форматирую Instant
объекты. Я использую этот формат, чтобы получить более качественный вывод фактической отметки времени, потому что теперь он выглядит так: 2019-07-18T05: 35: 00Z. И я хочу, чтобы это было 2019-07-18 07: 35: 00.