小编Har*_*ezz的帖子

如何通过Gradle测试任务在我的JUnit上启用调试

当我尝试通过gradle测试任务运行JUnit测试时,我遇到了麻烦.当我使用Run As - > JUnit测试直接在eclipse中运行测试时,一切正常,测试成功.但是通过测试任务,测试总是失败.编码我的资源txt文件可能有些麻烦.所以我想在使用gradle启动测试时启用调试

在build.gradle中,我的测试任务现在看起来像:

test {
    tasks.withType(Compile) {
        options.encoding = 'UTF-8'
    }
}
Run Code Online (Sandbox Code Playgroud)

那么我应该怎样做才能启用调试?我在Eclipse中从Gradle面板运行gradle任务,而不是从控制台运行.谢谢!

java eclipse testing unit-testing gradle

35
推荐指数
4
解决办法
4万
查看次数

枚举实例后括号中的数字

我正在读一本关于编程的书,我遇到了这样的事情:

public static enum Month {
JANUARY(1),
FEBRUARY(2),
MARCH(3),
APRIL(4),
MAY(5),
JUNE(6),
JULY(7),
AUGUST(8),
SEPTEMBER(9),
OCTOBER(10),
NOVEMBER(11),
DECEMBER(12);
Month(int index) {
this.index = index;
}
Run Code Online (Sandbox Code Playgroud)

枚举实例后括号中的数字是什么意思?它是一个枚举构造函数吗?

java enums constructor

8
推荐指数
2
解决办法
2508
查看次数

如何使用更具体的类型替换参数化类型

请考虑以下设置:

我们有一个SuperType参数化的接口,如下所示:

public interface SuperType<V> {
}
Run Code Online (Sandbox Code Playgroud)

SuperType支持方法链接.因此它定义了另一个类型参数,它捕获每个方法返回的具体实现子类型,如下所示:

public interface SuperType<V, S extends SuperType<V, S>> {

    public S doSomething();
}
Run Code Online (Sandbox Code Playgroud)

让我们考虑一下以下的实现SuperType<V, S extends SuperType<V, S>>:

public class SubType<V> implements SuperType<V, SubType<V>> {

    private final V value;

    public SubType(V value) { this.value = value; }

    public SubType<V> doSomething() { return this; }
}
Run Code Online (Sandbox Code Playgroud)

有人SubType<V>使用例如字符串实例化,但提供Object了type参数V:

Object s = "Java Generics";
SubType<Object> x = new SubType<>(s);
Run Code Online (Sandbox Code Playgroud)

现在我们要定义另一个方法,SuperType<V, S extends SuperType<V, S>> …

java generics type-parameter

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

如何使用lambda过滤具有二级列表中对象属性的列表?

例如,有两个类:

class Team { 
 List<Player> players; //with getter & setter
}
class Player{
  String name; //with getter & setter
  int number;  //with getter & setter
}
Run Code Online (Sandbox Code Playgroud)

所以,如果有三支球队:

红队:亚当(4)、汤姆(5)、彼得(11)

蓝队:肯(5),贾斯汀(11)

黑队 : Kim(4), Jackal(3)

我想使用 lambda 来获取拥有球衣编号为 X 的成员的团队。例如:

过滤器为 4 将获得红色,黑色
过滤器与 11 将获得红色和蓝色。

我知道如何仅在玩家级别进行过滤,例如

players.stream().filter(p->p.number.equal(X))
Run Code Online (Sandbox Code Playgroud)

或 flatmap 以获取玩家列表

teams.stream().flatmap(t->t.getPlayers())
Run Code Online (Sandbox Code Playgroud)

但是我如何混合这些 lambda 来让团队在玩家上有一个属性过滤器?

lambda java-8

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

为什么Eclipse Compiler会丢失固定类型参数?

我努力为这个问题找到一个合适的头衔,因为我观察到的现象非常奇怪.因此,我逐字逐句解释我的问题,而是向您展示一些(希望)自我描述的代码.考虑以下参数化类:

public class GenericOptional<T> {

    public GenericOptional(T someValue) {}

    public T getValue() { return null; }

    public Optional<String> getOptionalString() { return Optional.empty(); }
}
Run Code Online (Sandbox Code Playgroud)

我想强调的是,返回类型Optional<String>的方法,getOptionalString()不依赖于类型参数 T.

现在看看下面的代码,它使用Java 8u45Eclipse Luna 4.4.2中编译:

public static void main(String[] args) {
    Object obj = new GenericOptional<>(Boolean.TRUE);
    GenericOptional go = (GenericOptional) obj;
    Optional os = go.getOptionalString();
}
Run Code Online (Sandbox Code Playgroud)

局部变量os的类型Optional没有type-parameter String!在Eclipse的编译器已经失去了对固定的信息类型参数.有谁知道为什么?

现在看第二个代码示例:

public static void main(String[] args) { …
Run Code Online (Sandbox Code Playgroud)

eclipse generics optional type-parameter java-8

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

在期货清单上流式传输的最有效方式

我通过流式传输对象列表来调用异步客户端方法.该方法返回Future.

迭代调用后返回的Futures列表的最佳方法是什么(以便处理那些首先出现的Future)?

注意:异步客户端仅返回Future not CompletableFuture.

以下是代码:

List<Future<Object>> listOfFuture = objectsToProcess.parallelStream()
    .map((object) -> {
        /* calling an async client returning a Future<Object> */ })
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

java concurrency future java-8 completable-future

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

在最后2个不相同的每一行写0和1

我现在构建的逻辑中存在错误.应该发生的是我的代码应该显示0和1的网格.像这样:

001001
101101
010110
110010
001101
Run Code Online (Sandbox Code Playgroud)

所以这里必须发生的是:

  • 对于每一行,连续不能有多于2个相同类型的数字
  • 这些数字是随机挑选的
  • 对于每列,连续不能有超过2个相同类型的数字
  • 按列或行的每种类型的数字最多可以有3个

编辑:进一步澄清确定所以我有这样一行:0 1 0 1 1 0 - 你可以看到总会有3 x 1和3 x 0 - 数字的顺序是随机挑选的(所以它可能会去0 1,或1 1,或0 0开始等) - 连续不能超过2个相同类型的数字,例如如果它是001100,你可以看到有2 0,那么它必须显示一个1,但是那时有2个1,所以它必须显示0.所以011100不会发生(连续3个1)或000101(连续3个0)

  • 基于这一点,但现在不是必需的,同样没有2号连续必须适用于列(所以在我的成功例子不言而喻001001跨越,最多有2 0的连续,但往下看你会得到010101(也就是说,再次,连续不超过2)

所以我的代码如下:

    import java.util.Random;

public class Main {

    public static void main(String[] args) {
        int l = 6;
        int w = 6;
        Random rd = new Random();

        // Create a grid that is 6 x 6
        int[][] grid = new int[l][w];
        // for each row
        for (int i …
Run Code Online (Sandbox Code Playgroud)

java algorithm for-loop nested multidimensional-array

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

如何在所有Lighttpd SSL配置中设置HTTP代理服务器

我已将我的代理服务器配置为仅HTTPS.现在我希望对于具有模式^/backend(.*)$的特定URL,请求被重定向到端口8080(使用HTTP而不是HTTPS).

如果我在没有HTTPS的情况下配置代理服务器,我可以这样做:

$HTTP["url"] =~ "^/backend(.*)$" {
    proxy.server  = ("" => (
            ("host" => "127.0.0.1", "port" => 8080)
        ))
}  
Run Code Online (Sandbox Code Playgroud)

ssl lighttpd

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

避免在"for"语句中出现空指针异常

在我的代码NullPointerException中,当a List为null 时,我通常使用这种方法来避免s in语句:

if (myList != null && myList.size() > 0) {
    for ( MyObj obj : myList ) {
        System.out.println("MyObjStr: "+obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以在不写"if"语句的情况下执行相同操作,但使用相同的"for"语句?

java collections arraylist

4
推荐指数
3
解决办法
7888
查看次数

有没有办法注释代码块的每一行?

我的代码中有这样的东西,只有我有更多的FXML元素,所以有很多@FXML

@FXML
private TableColumn<Player, String> playerColumn1;
@FXML
private TableColumn<Player, String> playerColumn2;
@FXML
private TableColumn<Player, String> playerColumn3;
Run Code Online (Sandbox Code Playgroud)

我想用相同的注释来平衡某个块的每一行代码,就像这样,有没有办法做到这一点?

@FXML
{
    private TableColumn<Player, String> playerColumn1;
    private TableColumn<Player, String> playerColumn2;
    private TableColumn<Player, String> playerColumn3;
}
Run Code Online (Sandbox Code Playgroud)

java annotations fxml

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