小编Chr*_*ins的帖子

用吸气剂'公共静态决赛'或'私人静态决赛'?

在Java中,它教导变量应保持私有以实现更好的封装,但静态常量呢?这个:

public static final int FOO = 5;
Run Code Online (Sandbox Code Playgroud)

结果与此相当:

private static final int FOO = 5;
...
public static getFoo() { return FOO; }
Run Code Online (Sandbox Code Playgroud)

但哪种更好的做法?

java static final private public

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

调用父目录的Makefile

我有一个具有以下目录结构的项目:

foo/
foo/Makefile
foo/bar/
Run Code Online (Sandbox Code Playgroud)

我的目标是添加一个文件foo/bar/Makefile,这样如果我调用makein foo/bar,将使用父目录的 Makefile 。这是一种反向递归 Makefile 结构(我希望每个 Makefile 都调用父目录,直到它到达项目根目录)。

符号链接失败,因为从错误的目录调用它会破坏所有相对路径:

$ ln -s ../Makefile foo/bar/Makefile
$ make -C foo/bar
[error]
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决方案是编写一个 Makefile 来捕获我感兴趣的所有目标并使用该目标调用父目录:

$ cat foo/bar/Makefile
all clean:
    $(MAKE) -C .. $@
Run Code Online (Sandbox Code Playgroud)

这很费力并且容易破裂。有没有更优雅的解决方案?

理由

该项目是一个大型 LaTeX 文档,其中包含.tex章节、图表等文件的多个子目录。我希望能够make从这些目录中的任何一个调用来构建文档。

recursion latex makefile build

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

如何等待队列包含元素?

我正在尝试实现一个FIFO观察者/可观察的解耦队列,但我不知道如何让一个方法等到队列在返回之前不为空.这是我目前的尝试,但我确信必须有一个更优雅的解决方案.

/*
 * Waits until there is data, then returns it.
 */
private Double[] get() {
    while (queue.isEmpty()) {
        try {
            Thread.sleep(1);
        } catch (InterruptedException e) {
            // Don't care.
        }
    }

    return queue.removeFirst();
}
Run Code Online (Sandbox Code Playgroud)

java queue wait

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

标签 统计

java ×2

build ×1

final ×1

latex ×1

makefile ×1

private ×1

public ×1

queue ×1

recursion ×1

static ×1

wait ×1