summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/it/alessandroiezzi/csv/CSVParser.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/it/alessandroiezzi/csv/CSVParser.java b/src/main/java/it/alessandroiezzi/csv/CSVParser.java
index 8df3b20..4ff346d 100644
--- a/src/main/java/it/alessandroiezzi/csv/CSVParser.java
+++ b/src/main/java/it/alessandroiezzi/csv/CSVParser.java
@@ -6,6 +6,7 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -16,9 +17,18 @@ public class CSVParser<T> {
private String separator = ";";
private final Class<T> cls;
+ private void checkDefaultConstructor() {
+ for (Constructor<?> constructor : cls.getConstructors()) {
+ if (constructor.getParameterCount() == 0) return;
+ }
+
+ throw new IllegalArgumentException("You need to define a constructor without parameters on " + cls.getName());
+ }
+
public CSVParser(InputStream csvFile, Class<T> cls) {
this.csvFile = csvFile;
this.cls = cls;
+ checkDefaultConstructor();
}
public CSVParser<T> withSeparator(char separator) {