dao.create()在测试方法时,我有一个想要模拟的调用.但我错过了一些东西,因为我还在接受NPE.这有什么不对?
class MyService {
@Inject
private Dao dao;
public void myMethod() {
//..
dao.create(object);
//
}
}
Run Code Online (Sandbox Code Playgroud)
如何模拟dao.create()调用?
@RunWith(PowerMockRunner.class)
@PrepareForTest(DAO.class)
public void MyServiceTest {
@Test
public void testMyMethod() {
PowerMockito.mock(DAO.class);
MyService service = new MyService();
service.myMethod(); //NPE for dao.create()
}
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个HashMap使用java8 streamAPI,如下所示:
Map<Integer, String> map = dao.findAll().stream()
.collect(Collectors.toMap(Entity::getType, Entity::getValue));
Run Code Online (Sandbox Code Playgroud)
现在,如果将一个元素添加到已存在该键的集合中,我只想将现有元素保留在列表中并跳过
附加元素.我怎样才能做到这一点?可能是我要利用BinaryOperation<U>的toMap(),但任何人都可以提供
我的具体案例的一个例子?
如果无法解析简单的日期时间,为什么可以将LocalDateTime对象传递给ZonedDateTime.from()方法,如下所示?
@Test
public void test() throws Exception {
GregorianCalendar.from(ZonedDateTime.from(LocalDateTime.parse("2016-08-31T23:00:59")));
}
Run Code Online (Sandbox Code Playgroud)
结果:
java.time.DateTimeException: Unable to obtain ZonedDateTime from TemporalAccessor: 2016-08-31T23:00:59 of type java.time.LocalDateTime
at java.time.ZonedDateTime.from(ZonedDateTime.java:565)
Run Code Online (Sandbox Code Playgroud) 我有两个来自框架的注释。我经常在同一个字段上使用这两个注释。因此,我试图创建一个包含两者的“组合”注释。
但我不知道这是否可能:
现有的注释(我无法控制):
@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiParam {
String name() default "";
}
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiModelProperty {
String name() default "";
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建的自定义注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
@ApiParam
@ApiModelProperty
public @interface SwaggerParam {
String name() default "";
}
Run Code Online (Sandbox Code Playgroud)
结果:注解不适用于注解类型。
问:有机会吗?
我想遍历json对象的所有节点,并写出一个简单的键值映射,如下所示:
{
"name": [
{
"first": "John",
"last": "Doe",
"items": [
{
"name": "firstitem",
"stock": 12
},
{
"name": "2nditem",
"stock:" 23
}
]
}],
"company": "John Company"
}
Run Code Online (Sandbox Code Playgroud)
应导致:
name-first-1=John
name-last-1=Doe
name-items-name-1-1=firstitem (meaning the list index is always appended at the end of the name)
name-items-name-1-2=2nditem
company=John Company
Run Code Online (Sandbox Code Playgroud)
这是如何将json字符串作为json对象获取:
ObjectMapper mapper = new ObjectMapper(); //using jackson
JsonNode root = mapper.readTree(json);
//TODO how loop all nodes and subnodes, and always get their key + value?
Run Code Online (Sandbox Code Playgroud)
但是,现在如何遍历所有节点并提取其密钥和内容呢?
我有一个35GB的CSV文件。我想读取每一行,并在符合条件的情况下将其写到新的CSV中。
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) {
try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) {
br.lines().parallel()
.filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world
.forEach(line -> {
writer.write(line + "\n");
});
}
}
Run Code Online (Sandbox Code Playgroud)
这大约需要。7分钟 是否可以进一步加快该过程?
如何在左中右一行中对齐3个div而无需定义显式大小?
左边应该与左边缘对齐,右边边缘对齐.
以下不起作用:
<div style="float: left;">
left
</div>
<div style="float: right;">
right
</div>
<div style="margin: 0 auto;">
center
</div>
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我在spring应用程序启动之前初始化属性,如下所示
MapLookup.setMainArguments(new String[] {"logging.profile", profile}); //from args
SpringApplication.run(source, args);
Run Code Online (Sandbox Code Playgroud)
(仅供参考:它用于log4j2记录,必须在spring开始初始化之前设置).
现在我想运行一个@IntegrationTest,但使用相同的日志配置.显然我不能使用上面的代码,因为JUnit测试没有使用SpringApplication.run.
那么,如何在@RunWith(SpringJUnit4ClassRunner.class)开始之前初始化代码呢?
注意:BeforeClass不起作用,因为这是在spring上下文启动后执行的.
我想填充一个div img,保持纵横比,并根据需要拉伸宽度或高度.
<div style="width: 80px; height: 80px">
<img src="..." />
</div>
Run Code Online (Sandbox Code Playgroud)
我怎么能实现它?如果图像不是二次方,则必须"放大"并且要么是上下或左右,要么是哪一侧是较大的一侧.此外,图像应该在中心之后,以便角落被均等地切割.
我试过(但没效果):
.thumb {
max-width:100%;
max-height:100%;
}
Run Code Online (Sandbox Code Playgroud)
如果我添加额外的width: 100%; height:100%;,图像完全适合,但调整大小不保持aspect ratio.
是否可以完全禁用任何预配置的@media printCSS样式bootstrap而无需重新编译它?
默认情况下应用的打印样式可以在这里看到:https://github.com/twbs/bootstrap/blob/master/dist/css/bootstrap.css#L6837
我希望我的网页能够按原样打印,并应用所有css标签.特别是颜色,如:
b {
color: #ff0000;
}
Run Code Online (Sandbox Code Playgroud)
为了从bootstrap禁用打印样式,我必须使用我的自定义样式再次显式覆盖每个属性,例如:
b {
color: #ff0000 !important;
}
Run Code Online (Sandbox Code Playgroud)
但是没有全局方法来禁用这些默认打印样式吗?
java ×7
css ×3
html ×3
java-stream ×2
junit ×2
spring ×2
annotations ×1
jackson ×1
java-8 ×1
java-io ×1
java-time ×1
json ×1
mockito ×1
powermock ×1
spring-test ×1