小编Aar*_*ang的帖子

JVM如何终止守护程序线程?或者如何编写正常终止的守护程序线程

假设场景:
我有一个守护程序线程负责一些I/O,主线程完成并返回,JVM决定终止我的守护程序线程.

它是如何做到的?打断?最终确定?如何对我的守护程序线程进行编码,以便在终止时能够优雅地做出反应?

java multithreading jvm daemon

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

通用变量类型参数

我想做点什么

public interface Foo<R, P...> {
    public R bar(P...) {/*misc*/}
}
Run Code Online (Sandbox Code Playgroud)

获取要在绑定实现中使用的类型数组.这在Java中可行吗?

Varargs旨在让我拥有给定类的任意数量的参数.

我想使用它(或类似的东西)让我的方法接受几个参数,每个参数都是给定不同类的成员.绑定泛型时定义这些类.

我知道有解决方法,但有一种类型安全的方法吗?

java generics syntax variadic-functions

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

用循环枚举枚举实例

场景:
我想要一个包含标准牌组中所有扑克牌的枚举.对于这个例子,忽略这些笑话.

写作

enum Cards {
    SPADE_1(0, 1),
    SPADE_2(0, 2),
    etc.
Run Code Online (Sandbox Code Playgroud)

感觉不对.

我希望能够做到这样的事情

enum Card {
    for (int suit=0; suit<4; suit++) {
        for (int face=1; face<13; face++) {
            new Card(suit, face);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经考虑将卡片定义为包含西装和脸部领域的类,其中西装和脸部本身就是枚举.然而,在其他情况下(例如具有红色和黑色的套装的笑话),这将允许创建无效的卡对象(即,钻石的小丑或红色10).

自我回答:
显然我没有足够的代表来回答我自己的问题.

I'm not sure if it's considered good form to answer my own question, but @Paul just gave me a brainwave.

Declare Card to have a private constructor, and use a
    static Card getCard(suit, face)
method to validate combinations before returning them.

java enums loops coding-style syntactic-sugar

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

在调用halt之前,JVM允许关闭挂钩运行多长时间?

跟进上一个问题

如果您已经阅读了上一个问题,则另一个标题可能是:
我的守护程序应该多久检查一次它是否被中断?

java multithreading jvm shutdown-hook

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

创建Vim样式的命令行界面

我理解如何使用stdin/stdout/stderr在每个命令的基础上通过命令行与用户交互(如git/maven/javac等)

但是我想创建一个更像Vim/Emacs的界面.也就是说,当程序运行时,它会清除终端,显示全屏字符,并停用回声.当完成伪造窗口'关闭'并且终端返回到它之前的状态时,好像什么也没发生.

我想知道如何使用命令行界面产生类似窗口的行为.我目前正在为unix编程java,但理想情况下我想要更一般的解释.

谢谢

user-interface command-line command-line-interface

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