mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix config
This commit is contained in:
parent
6ac88ef1fe
commit
9b58b8295a
@ -9,6 +9,7 @@
|
||||
* 【core 】 增加NamingCase类
|
||||
* 【core 】 ListUtil增加page方法重载(pr#1761@Github)
|
||||
* 【crypto 】 增加ASN1Util
|
||||
* 【core 】 CsvConfig改为泛型形式
|
||||
|
||||
### 🐞Bug修复
|
||||
|
||||
|
@ -7,10 +7,11 @@ import java.io.Serializable;
|
||||
/**
|
||||
* CSV基础配置项,此配置项可用于读取和写出CSV,定义了包括字段分隔符、文本包装符等符号
|
||||
*
|
||||
* @param <T> 继承子类类型,用于this返回
|
||||
* @author looly
|
||||
* @since 4.0.5
|
||||
*/
|
||||
public class CsvConfig implements Serializable {
|
||||
public class CsvConfig<T extends CsvConfig<?>> implements Serializable {
|
||||
private static final long serialVersionUID = -8069578249066158459L;
|
||||
|
||||
/**
|
||||
@ -32,9 +33,10 @@ public class CsvConfig implements Serializable {
|
||||
* @param fieldSeparator 字段分隔符,默认逗号','
|
||||
* @return this
|
||||
*/
|
||||
public CsvConfig setFieldSeparator(final char fieldSeparator) {
|
||||
@SuppressWarnings("unchecked")
|
||||
public T setFieldSeparator(final char fieldSeparator) {
|
||||
this.fieldSeparator = fieldSeparator;
|
||||
return this;
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -43,9 +45,10 @@ public class CsvConfig implements Serializable {
|
||||
* @param textDelimiter 文本分隔符,文本包装符,默认双引号'"'
|
||||
* @return this
|
||||
*/
|
||||
public CsvConfig setTextDelimiter(char textDelimiter) {
|
||||
@SuppressWarnings("unchecked")
|
||||
public T setTextDelimiter(char textDelimiter) {
|
||||
this.textDelimiter = textDelimiter;
|
||||
return this;
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -55,8 +58,9 @@ public class CsvConfig implements Serializable {
|
||||
* @return this
|
||||
* @since 5.5.7
|
||||
*/
|
||||
public CsvConfig setCommentCharacter(char commentCharacter) {
|
||||
@SuppressWarnings("unchecked")
|
||||
public T setCommentCharacter(char commentCharacter) {
|
||||
this.commentCharacter = commentCharacter;
|
||||
return this;
|
||||
return (T) this;
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class CsvReadConfig extends CsvConfig implements Serializable {
|
||||
public class CsvReadConfig extends CsvConfig<CsvReadConfig> implements Serializable {
|
||||
private static final long serialVersionUID = 5396453565371560052L;
|
||||
|
||||
/** 是否首行做为标题行,默认false */
|
||||
|
@ -9,7 +9,7 @@ import java.io.Serializable;
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
public class CsvWriteConfig extends CsvConfig implements Serializable {
|
||||
public class CsvWriteConfig extends CsvConfig<CsvWriteConfig> implements Serializable {
|
||||
private static final long serialVersionUID = 5396453565371560052L;
|
||||
|
||||
/**
|
||||
|
@ -145,4 +145,17 @@ public class CsvReaderTest {
|
||||
Assert.assertEquals(6, data.getRow(1).getOriginalLineNumber());
|
||||
Assert.assertEquals("a,s,d,f", CollUtil.join(data.getRow(1), ","));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void customConfigTest(){
|
||||
final CsvReader reader = CsvUtil.getReader(
|
||||
CsvReadConfig.defaultConfig()
|
||||
.setTextDelimiter('\'')
|
||||
.setFieldSeparator(';'));
|
||||
final CsvData csvRows = reader.readFromStr("123;456;'789;0'abc;");
|
||||
final CsvRow row = csvRows.getRow(0);
|
||||
Assert.assertEquals("123", row.get(0));
|
||||
Assert.assertEquals("456", row.get(1));
|
||||
Assert.assertEquals("'789;0'abc", row.get(2));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user