小编Pab*_*mez的帖子

IntelliJ IDEA:断点未被击中,并且没有勾选,只显示一个红点

首先,我发现的最相似的问题是这个Intellij IDEA:断点未被击中,并且显示为灰色,但这不是完全相同的情况.

我有一个gradle项目,当我放置一个断点时,它显示为一个红点,里面有一个勾号,它只是工作正常.

工作断点

问题是在某些类中(在同一个项目中,而不是依赖类),红点内部没有勾号,并且它没有说明为什么它不起作用.它只是不起作用..:

在此输入图像描述

到目前为止我尝试了什么:

  • Gradle清洁和构建
  • 重建项目
  • 重启调试
  • 使高速缓存无效并重新启动IntelliJ
  • 将IntelliJ更新到最新版本(2017.2.5)
  • 静音和取消静音断点

java debugging intellij-idea

24
推荐指数
2
解决办法
2万
查看次数

为什么并行流不使用ForkJoinPool的所有线程?

所以我知道,如果你使用parallelStream没有自定义ForkJoinPool,它将使用默认的ForkJoinPool,默认情况下,只有一个线程,因为你有处理器.

因此,如此处所述(以及该问题的另一个答案)为了获得更多的并行性,您必须:

将并行流执行提交给您自己的ForkJoinPool:yourFJP.submit(() - > stream.parallel().forEach(doSomething));

所以,我这样做了:

import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.stream.IntStream;
import com.google.common.collect.Sets;

public class Main {

    public static void main(String[] args) throws InterruptedException, ExecutionException {

        ForkJoinPool forkJoinPool = new ForkJoinPool(1000);

        IntStream stream = IntStream.range(0, 999999);

        final Set<String> thNames = Collections.synchronizedSet(new HashSet<String>());

        forkJoinPool.submit(() -> {
            stream.parallel().forEach(n -> {

                System.out.println("Processing n: " + n);
                try {
                    Thread.sleep(500);
                    thNames.add(Thread.currentThread().getName());
                    System.out.println("Size: " + thNames.size() + " activeCount: " + forkJoinPool.getActiveThreadCount());
                } catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading java-8 java-stream

14
推荐指数
2
解决办法
2万
查看次数

Java属性文件中equals和冒号之间的区别

在Spring中,您可以使用不同的属性文件来配置消息,因此它们往往是这样的:

message.key=text here
another.message.key=another text here
Run Code Online (Sandbox Code Playgroud)

但今天我在一个项目中看到它正在使用这种格式:

message.key:text here
another.message.key:another text here
Run Code Online (Sandbox Code Playgroud)

我认为这适用于任何Java属性文件,但有什么区别?

java spring properties

12
推荐指数
2
解决办法
2497
查看次数

在单行中调用Optional#isPresent()报告为未调用

我运行SonarQube检查我的代码,我发现了一个我不理解报告错误的案例.

我的代码是:

private static final int BASE_ID = 100_000_000;
private boolean isValidId(Id id) {
    return id.asInteger().isPresent() && id.asInteger().get() >= BASE_ID;
}
Run Code Online (Sandbox Code Playgroud)

该方法asInteger返回Optional<Integer>

我从sonarqube得到的错误是 Call "Optional#isPresent()" before accessing the value. 在返回行.

我理解代码是正常的,因为如果第一个是假的,那么if的第二部分将被执行.我知道这可以通过a来解决,if但我更喜欢这种方式.

有什么想法会发生这种情况吗?

java optional java-8 sonarqube sonarqube-scan

12
推荐指数
2
解决办法
725
查看次数

如果缺少一个主机,则Datastax Java Driver无法连接

如果我没有错,可以连接到Cassandra集群,知道集群中至少有一个节点,然后可以发现其他节点.

假设我有三个节点(1,2和3),我连接到这些节点,如下所示:

Cluster.builder().addContactPoints("1,2,3".split(",")).build();

然后,如果节点3例如关闭,并且无法解析IP,则此行代码将IllegalArgumentException按照文档中的说明抛出:

@throws IllegalArgumentException if no IP address for at least one of {@code addresses} could be found

为什么有人想要这种行为?我的意思是,如果其中一个节点关闭,我希望应用程序能够运行,因为Cassandra仍然正常工作.

我检查了这个Cassandra Java驱动程序:有多少接触点是合理的? 但这并没有回答我的问题,因为它没有说出任何关于主机的信息,而无法达到.

我该怎么处理?也许这在另一个版本的java驱动程序中有所改变?我目前正在使用cassandra-driver-core-3.0.3

java cassandra datastax

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

如何在freemarker中将null设置为变量

在任何问题上我找不到与此相关的任何内容,这是非常基本的,但我无法弄清楚.

所以我的问题是我不知道如何将null设置为freemarker中的变量.例:

${hi!"bye"}          <#-- Prints "bye" because hi is undefined -->
<#assign hi="hi">    <#-- Sets a value to the var hi -->
${hi!"bye"}          <#-- Prints "hi" because hi has a value -->
<#assign hi=null>    <#-- This does not work but is what I am looking for -->
${hi!"bye"}          <#-- I want it to print "bye" because hi should be undefined -->
Run Code Online (Sandbox Code Playgroud)

我有这个问题,因为我迭代一个列表并设置一个var,如果特定项的某些逻辑验证,然后检查var是否存在,但如果第一个项创建var,那么我将为其余的设置var列表中的项目.

freemarker

9
推荐指数
2
解决办法
6075
查看次数

火花中的URL模式

我正在尝试制作一个与以下网址匹配的过滤器:

/foo/foo/*

所以任何事情都在/foo/基础情况下/foo

我有这个过滤器:

    Spark.before("/foo/*", (request, response) -> {
        String ticket = request.cookie("session");
        if (ticket == null) {
            Spark.halt(302);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是当我进入时,这当然不会执行 /foo

我尝试了以下但没有运气:

/foo* /foo.* /foo/

反正有没有实现这个目标?或者也许使用URL列表?这样我就可以将两个url分配给同一个过滤器.

并且请不要说将函数存储在变量中,以便我使用它两次,因为我觉得它根本不干净..

java url-routing spark-java

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

使用Spark Framework为静态文件设置特定URL

我使用的Spark服务网页.对于静态文件我初始化星火喜欢这里所说:

所以我有这个结构:

/src/main/resources/public/
                      |-- foo/
                           |-- css/
                           |    |-- bootstrap.css
                           |-- js/
                           |    ...
                           |-- img/
                                ...
Run Code Online (Sandbox Code Playgroud)

我制作了一个foo文件夹,因为我的网页位于/foourl ..这样:

http://www.example.com/foo/index

所以我的静态文件像这样加载,例如:

http://www.example.com/foo/css/bootstrap.css

我现在想要的是将此路径变量.因为我有不同的环境,例如,如果我在另一个域中部署此应用程序,我希望它是:

http://www.example2.com/superfoo/css/bootstrap.css

但为此,我必须更改版本并更改文件夹...

对于控制器我很容易做到:

例:

    Spark.get(this.appBasePath + "/users", (request, response) -> {
        return this.getUsersView(request);
    }, new FreeMarkerEngine());
Run Code Online (Sandbox Code Playgroud)

this.appBasePath 来自加载决定环境的配置.

所以我要问的是以编程方式设置静态文件URL而不制作任何文件夹.有没有办法实现这个目标?

java spark-java

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

使用spark将POST主体解析为java对象

我从春天迁移到火花前,现在我陷入了基本的困境.

当我发出POST请求在正文中发送数据时,我希望将JAVA对象放回控制器中.

在春天我曾经做过

@RequestBody User user
Run Code Online (Sandbox Code Playgroud)

它被自动"填充"了..

现在有火花我有方法:

request.body();
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个像这样的序列化字符串:

id=7&name=Pablo+Mat%C3%ADas&lastname=Gomez&githubUsername=pablomatiasgomez

那么我怎样才能获得用户DTO?

当然,User类具有属性

  • ID
  • 名称
  • githubUsername

java spring spark-java

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

Javascript如果短符号

我正在网上冲浪,寻找if语句的简写Javascript表示法.只有if,而不是其他.我的问题:它存在吗?例如:

(i === 0) ? onlyMyTrueValue;
Run Code Online (Sandbox Code Playgroud)

我似乎找到的唯一片段就是这个:

(i === 0) ? myTrueValue : myFalseValue;
Run Code Online (Sandbox Code Playgroud)

javascript

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