小编shi*_*njw的帖子

如何让IntelliJ识别Play Framework*.scala.xml模板

有没有人获得IntelliJ IDEA识别*.scala.xml旋转模板?HTML模板似乎很好地被IDE选中,似乎是唯一受支持的模板,但任何其他类型的模板都不会被拾取.

java scala intellij-idea playframework twirl

9
推荐指数
1
解决办法
682
查看次数

逻辑运算符OR无短路

你什么时候需要使用非短路逻辑运算符?换一种说法...

你什么时候用

if(x == 1 | x==2)
Run Code Online (Sandbox Code Playgroud)

代替

if(x == 1 || x==2)
Run Code Online (Sandbox Code Playgroud)

如果第一个条件为真...则整个语句已经为真.

更新:和&和&&的相同问题

java

7
推荐指数
1
解决办法
196
查看次数

带有 ThreadPools 或 Spring Async 的 Logback MDC

我试图确定MDC使用 Cacheable ThreadPools 或 Spring 的 Async 注释时线程安全的程度。

我有一个方法可以调用多个CompletableFuture<>并使用线程池执行它们

@Async
public CompletableFuture<List> someMethod(String request) {
    try {
        MDC.put("request", request)
        MDC.put("loggable1", "loggable1");
        MDC.put("loggable2", "loggable2");
        log.info("Log Event");
    } finally {
        MDC.clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

Logback 的 MDCAdapter 相关部分

final ThreadLocal<Map<String, String>> copyOnThreadLocal = new ThreadLocal<Map<String, String>>();

public void put(String key, String val) throws IllegalArgumentException {
    if (key == null) {
        throw new IllegalArgumentException("key cannot be null");
    }

    Map<String, String> oldMap = copyOnThreadLocal.get();
    Integer lastOp = getAndSetLastOperation(WRITE_OPERATION);

    if (wasLastOpReadOrNull(lastOp) || …
Run Code Online (Sandbox Code Playgroud)

java logback mdc

6
推荐指数
1
解决办法
1879
查看次数

获取Excel中单元格的格式化值

使用时如何获取单元格的格式化值=CONCATENATE(E1, " - " , D1)

E1 = 08/21/2014 8:00 PM EST (Formatted value = 08/21)

D1 = Task Item 1

想要的输出:=08/21 - Task Item 1

excel

5
推荐指数
1
解决办法
9304
查看次数

为什么substring()方法substring(起始索引(包括),结束索引(独占))

substring将起始参数作为索引,第二个参数作为从头开始的长度的原因是什么?

换一种说法

1   2   3 | 4   5 <=== Length from beginning

A   B   C   D   E

0 | 1   2   3   4 <=== Index
Run Code Online (Sandbox Code Playgroud)

如果我想要substring()返回BC我必须做"ABCDE".substring(1,3);

为什么会这样?

编辑:使结束索引独占有什么好处?

java string

5
推荐指数
2
解决办法
7624
查看次数

Spring AOP 使用方法和参数注释

有没有办法让 Spring AOP 识别已注释的参数的值?(无法保证传递到切面的参数的顺序,因此我希望使用注释来标记需要用于处理切面的参数)

任何替代方法也会非常有帮助。

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Wrappable {
}


@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Key {
}

@Wrappable
public void doSomething(Object a, @Key Object b) {
    // something
}

@Aspect
@Component
public class MyAspect {
    @After("@annotation(trigger)" /* what can be done to get the value of the parameter that has been annotated with @Key */)
    public void trigger(JoinPoint joinPoint, Trigger trigger) { }
Run Code Online (Sandbox Code Playgroud)

java spring annotations spring-aop

5
推荐指数
1
解决办法
8934
查看次数

无法压缩通量并返回空值。我们如何丢弃传递给通量的事件对?

假设你有一套Flux你想用双功能压缩在一起的。

Flux<String> flux1 = Flux.just("A", "B", "C");
Flux<String> flux2 = Flux.just("D", "E", "F");
Flux.zip(flux1, flux2, this::zipString).subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)

null如果对象满足某个约束,则下面的这个双功能将返回。这样我们就可以在将Flux它们压缩在一起后应用过滤器。

public String zipString(String a, String b) {
    if (a.equals("B"))
        return null;
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

这个策略最终会抛出一个NullPointerException.

Exception in thread "main" 
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.NullPointerException: The zipper returned a null value
Caused by: java.lang.NullPointerException: The zipper returned a null value
    at java.util.Objects.requireNonNull(Objects.java:228)
    at reactor.core.publisher.FluxZip$ZipCoordinator.drain(FluxZip.java:711)
    at reactor.core.publisher.FluxZip$ZipInner.onSubscribe(FluxZip.java:861)
    at reactor.core.publisher.FluxArray.subscribe(FluxArray.java:53)
    at reactor.core.publisher.FluxArray.subscribe(FluxArray.java:59)
Run Code Online (Sandbox Code Playgroud)

编辑:附带说明,当您有一个Flux包含空值时,也会发生这种情况。

Flux<String> flux2 = Flux.just(null, "B", …
Run Code Online (Sandbox Code Playgroud)

java spring project-reactor spring-webflux

5
推荐指数
2
解决办法
4910
查看次数

如何按特殊字符拆分数组元素

我有一个这样的字符串数组:

var strings = ['elephant-rides', 'are', 'fun!'];
Run Code Online (Sandbox Code Playgroud)

我怎样才能达到下面给出的结果?

var result = ['elephant', '-', 'rides', 'are', 'fun', '!'];
Run Code Online (Sandbox Code Playgroud)

javascript split

3
推荐指数
1
解决办法
80
查看次数

Spock Mock Object 返回传递给它的对象

我正在尝试测试处理转换和持久性的服务实现。

我模拟了一个存储库并连接了一个转换服务。在 Spock 中是否有可能让 Mock 将返回给它的对象传回?

我尝试编写的语法如下。

IE

// Have this method return the object that has been passed to it.
repository.save(_ as Entity) >> (Entity) _
Run Code Online (Sandbox Code Playgroud)

java spock

2
推荐指数
1
解决办法
1478
查看次数

JodaTime在现有DateTime上设置TimeZone

我想在一个常量DateTime上设置一个时区.

  1. 我想在某个时区创建一个DateTime.
  2. 设置新时区以获取计算的DateTime对象.

例如:

DateTime currentTime = new DateTime(2015, 1, 23, 2, 0); // CONSTANT

// Looking for something that can perform this type of method.
currentTime.setTimeZone(DateTimeZone.forID("Asia/Tokyo"));
System.out.println("Asia/Tokyo Time" + currentTime);

currentTime.setTimeZone(DateTimeZone.forID("America/Montreal")
System.out.println("America/Montreal Time" + currentTime);
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用Joda-time API完成这项工作.

java datetime jodatime

1
推荐指数
1
解决办法
2830
查看次数

JVM堆栈如何工作?

JVM如何使用堆栈来运行程序?我被告知每行代码都被添加到堆栈中...但是如果堆栈是LIFO数据结构......那是不是意味着你的程序是向后运行的?或者我被告知错了?

编辑:

package test;

public class Testing {

public static void main(String args[])
{
    method2();
}

public static void method() {
    System.out.println(MyErrorHere);
} 
public static void method2() {
    method();
}
}
Run Code Online (Sandbox Code Playgroud)

返回以下堆栈跟踪:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
MyErrorHere cannot be resolved to a variable

at test.Testing.method(Testing.java:11)
at test.Testing.method2(Testing.java:14)
at test.Testing.main(Testing.java:7)
Run Code Online (Sandbox Code Playgroud)

调用的每个方法都被添加到main方法中创建的堆栈中?

java jvm

-1
推荐指数
1
解决办法
409
查看次数