diff options
-rw-r--r-- | src/main/java/it/alessandroiezzi/csv/CSVParser.java | 10 |
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) { |