使用環境
window 10Home
eclipse: 2022-03
orangesignal-csv-1.3.1
CSVを扱う練習のためにダウンロードしてファイルを読みこみ、
POJO形式でデータを取り入れようとしましたが、なぜか、クラス自体が形成されませんでした。
どうしたクラスが生成されて読み込んでくれるのでしょうか
やったこと
・Product の部分のPrivate→Public
・Productの部分の項目をリストにしてみた(例 Prefature String→ Prefature String[])
・Main
package CornaSarchMain;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import jp.sf.orangesignal.csv.Csv;
import jp.sf.orangesignal.csv.CsvConfig;
import jp.sf.orangesignal.csv.filters.BeanExpressions;
import jp.sf.orangesignal.csv.handlers.BeanListHandler;
import jp.sf.orangesignal.csv.handlers.ColumnPositionMappingBeanListHandler;
import jp.sf.orangesignal.csv.handlers.CsvEntityListHandler;
public class Main {
public static void main(String[] args) { String Cluster="Domestic"; String ClusterSubname="東北"; String Date="CoronaDate"; try { List<Product> Set= Csv.load(new File("Prefature Set.csv"),"windows-31j", new CsvConfig(),new ColumnPositionMappingBeanListHandler<Product>(Product.class)); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); }
・ProductCLass
package CornaSarchMain;
public class Product {
private String Prefature;
private int Population;
private double OldPercent;
private String Domestic;
public Product(String prefature, int population, double oldPercent, String domestic) {
Prefature = prefature;
Population = population;
OldPercent = oldPercent;
Domestic = domestic;
}
public String getPrefature() {
return Prefature;
}
public int getPopulation() {
return Population;
}
public double getOldPercent() {
return OldPercent;
}
public String getDomestic() {
return Domestic;
}
public void setPrefature(String prefature) {
Prefature = prefature;
}
public void setPopulation(int population) {
Population = population;
}
public void setOldPercent(double oldPercent) {
OldPercent = oldPercent;
}
public void setDomestic(String domestic) {
Domestic = domestic;
}
}
・Prefature Set.csv
都道府県名 人口 高齢者率 地方
北海道 5228885 0.29 北海道
青森県 1238730 0.3 東北
岩手県 1211206 0.3 東北
宮城県 2303487 0.25 東北
秋田県 960113 0.34 東北
山形県 1068696 0.31 東北
福島県 1834198 0.28 関東
茨城県 2868554 0.27 関東
・
・
・
(以下略)
・エラーメッセージ
java.io.IOException: Cannot create CornaSarchMain.Product: CornaSarchMain.Product
at jp.sf.orangesignal.csv.handlers.BeanListHandlerSupport.createBean(BeanListHandlerSupport.java:273)
at jp.sf.orangesignal.csv.handlers.ColumnPositionMappingBeanListHandler.load(ColumnPositionMappingBeanListHandler.java:205)
at jp.sf.orangesignal.csv.handlers.AbstractCsvListHandler.load(AbstractCsvListHandler.java:75)
at jp.sf.orangesignal.csv.handlers.AbstractCsvListHandler.load(AbstractCsvListHandler.java:32)
at jp.sf.orangesignal.csv.Csv.load(Csv.java:69)
at jp.sf.orangesignal.csv.Csv.load(Csv.java:83)
at jp.sf.orangesignal.csv.Csv.load(Csv.java:98)
at jp.sf.orangesignal.csv.Csv.load(Csv.java:129)
at CornaSarchMain.Main.main(Main.java:22)
Caused by: java.lang.InstantiationException: CornaSarchMain.Product
at java.base/java.lang.Class.newInstance(Class.java:671)
at jp.sf.orangesignal.csv.handlers.BeanListHandlerSupport.createBean(BeanListHandlerSupport.java:269)
... 8 more
Caused by: java.lang.NoSuchMethodException: CornaSarchMain.Product.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3617)
at java.base/java.lang.Class.newInstance(Class.java:658)
... 9 more
回答1件
あなたの回答
tips
プレビュー