Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
b040606c
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b040606c
编写于
1月 07, 2011
作者:
K
Keith Donald
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
spr-7728: empty collection conversion can return value not assignable to targetType
上级
a7293d29
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
78 addition
and
6 deletion
+78
-6
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java
...core/convert/support/CollectionToCollectionConverter.java
+0
-3
org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java
...ringframework/core/convert/support/MapToMapConverter.java
+0
-3
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
...k/core/convert/support/GenericConversionServiceTests.java
+26
-0
org.springframework.core/src/test/java/org/springframework/core/convert/support/Spr7728Tests.java
...rg/springframework/core/convert/support/Spr7728Tests.java
+52
-0
未找到文件。
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java
浏览文件 @
b040606c
...
...
@@ -62,9 +62,6 @@ final class CollectionToCollectionConverter implements ConditionalGenericConvert
return
null
;
}
Collection
<?>
sourceCollection
=
(
Collection
<?>)
source
;
if
(
sourceCollection
.
isEmpty
())
{
return
sourceCollection
;
}
Collection
target
=
CollectionFactory
.
createCollection
(
targetType
.
getType
(),
sourceCollection
.
size
());
for
(
Object
sourceElement
:
sourceCollection
)
{
Object
targetElement
=
this
.
conversionService
.
convert
(
sourceElement
,
sourceType
.
getElementTypeDescriptor
().
applyIndexedObject
(
sourceElement
),
targetType
.
getElementTypeDescriptor
());
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java
浏览文件 @
b040606c
...
...
@@ -67,9 +67,6 @@ final class MapToMapConverter implements ConditionalGenericConverter {
return
null
;
}
Map
<?,
?>
sourceMap
=
(
Map
<?,
?>)
source
;
if
(
sourceMap
.
isEmpty
())
{
return
sourceMap
;
}
Map
targetMap
=
CollectionFactory
.
createMap
(
targetType
.
getType
(),
sourceMap
.
size
());
for
(
Object
entry
:
sourceMap
.
entrySet
())
{
Map
.
Entry
sourceMapEntry
=
(
Map
.
Entry
)
entry
;
...
...
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
浏览文件 @
b040606c
...
...
@@ -399,6 +399,19 @@ public class GenericConversionServiceTests {
public
List
<
Integer
>
emptyListTarget
;
@Test
public
void
emptyListToListDifferentTargetType
()
throws
Exception
{
conversionService
.
addConverter
(
new
CollectionToCollectionConverter
(
conversionService
));
conversionService
.
addConverterFactory
(
new
StringToNumberConverterFactory
());
List
<
String
>
list
=
new
ArrayList
<
String
>();
TypeDescriptor
sourceType
=
TypeDescriptor
.
forObject
(
list
);
TypeDescriptor
targetType
=
new
TypeDescriptor
(
getClass
().
getField
(
"emptyListDifferentTarget"
));
assertTrue
(
conversionService
.
canConvert
(
sourceType
,
targetType
));
assertEquals
(
LinkedList
.
class
,
conversionService
.
convert
(
list
,
sourceType
,
targetType
).
getClass
());
}
public
LinkedList
<
Integer
>
emptyListDifferentTarget
;
@Test
public
void
emptyListToArray
()
throws
Exception
{
conversionService
.
addConverter
(
new
CollectionToArrayConverter
(
conversionService
));
...
...
@@ -433,6 +446,19 @@ public class GenericConversionServiceTests {
}
public
Map
<
String
,
String
>
emptyMapTarget
;
@Test
public
void
emptyMapToMapDifferentTargetType
()
throws
Exception
{
conversionService
.
addConverter
(
new
MapToMapConverter
(
conversionService
));
conversionService
.
addConverterFactory
(
new
StringToNumberConverterFactory
());
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
TypeDescriptor
sourceType
=
TypeDescriptor
.
forObject
(
map
);
TypeDescriptor
targetType
=
new
TypeDescriptor
(
getClass
().
getField
(
"emptyMapDifferentTarget"
));
assertTrue
(
conversionService
.
canConvert
(
sourceType
,
targetType
));
assertEquals
(
map
,
conversionService
.
convert
(
map
,
sourceType
,
targetType
));
}
public
Map
<
String
,
String
>
emptyMapDifferentTarget
;
private
interface
MyBaseInterface
{
...
...
org.springframework.core/src/test/java/org/springframework/core/convert/support/Spr7728Tests.java
0 → 100644
浏览文件 @
b040606c
package
org.springframework.core.convert.support
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Vector
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.springframework.core.convert.TypeDescriptor
;
public
class
Spr7728Tests
{
private
CollectionToCollectionConverter
theConverter
;
private
Vector
<
String
>
theSrcVector
;
private
TypeDescriptor
theSrcType
;
private
TypeDescriptor
theTargetType
;
@Before
public
void
setup
()
{
theSrcVector
=
new
Vector
<
String
>();
theSrcType
=
TypeDescriptor
.
forObject
(
theSrcVector
);
theTargetType
=
TypeDescriptor
.
forObject
(
new
ArrayList
());
theConverter
=
new
CollectionToCollectionConverter
(
new
GenericConversionService
());
}
@Test
public
void
convertEmptyVector_shouldReturnEmptyArrayList
()
throws
Exception
{
theSrcVector
.
add
(
"Element"
);
testCollectionConversionToArrayList
(
theSrcVector
);
}
@Test
public
void
convertNonEmptyVector_shouldReturnNonEmptyArrayList
()
throws
Exception
{
testCollectionConversionToArrayList
(
theSrcVector
);
}
private
void
testCollectionConversionToArrayList
(
Collection
<
String
>
aSource
)
{
Object
myConverted
=
theConverter
.
convert
(
aSource
,
theSrcType
,
theTargetType
);
Assert
.
assertTrue
(
myConverted
instanceof
ArrayList
<?>);
Assert
.
assertEquals
(
aSource
.
size
(),
((
ArrayList
<?>)
myConverted
).
size
());
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录