Можно ли преобразовать List String [] в список ListInteger?OpenCSV - Список преобразований <String[]> в список <Integer> список?
Я создаю программу, и мне нужно каким-то образом преобразовать CSV в int, чтобы я мог подвести итог.
@Path("/values")
public class values {
int totalSum = 0;
int value = 0;
List<Integer> list = new ArrayList<Integer>();
@GET
@Produces(MediaType.TEXT_PLAIN)
public int getSum() throws IOException {
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
List<String[]> read = reader.readAll();
//need to convert List<String[]> to List<Integer> list
return sum.sum(list, totalSum);
}
@POST
public String addValue() throws IOException {
String valueString = Integer.toString(value);
CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), ',');
String[] entries = valueString.split(",");
writer.writeNext(entries);
writer.close();
return "ok";
}
@DELETE
@Produces(MediaType.TEXT_PLAIN)
public String deleteList() {
list.clear();
return "ok";
}
}
sum.java
@Path("/values/sum")
public class sum {
public static int sum(List<Integer> list, int totalSum) {
for(int i : list) {
totalSum += i;
}
return totalSum;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>PACKAGENAME</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!-- Register resources and providers under com.vogella.jersey.first package. -->
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>PACKAGENAME</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
Может быть, есть лучший способ пойти по этому поводу? Я внедряю CSV как способ поддержания данных каждый раз, когда я выполняю GET.
Пробовал в вашей 'sum()' просто используя 'Integer.valueOf (String)'? Тогда он может принять «Список', похоже, что потребуется немного больше работы, чем просто, поскольку это «Список », но это, вероятно, будет вашим лучшим выбором в любом случае. –