假设场景:
我有一个守护程序线程负责一些I/O,主线程完成并返回,JVM决定终止我的守护程序线程.
它是如何做到的?打断?最终确定?如何对我的守护程序线程进行编码,以便在终止时能够优雅地做出反应?
我想做点什么
public interface Foo<R, P...> {
public R bar(P...) {/*misc*/}
}
Run Code Online (Sandbox Code Playgroud)
获取要在绑定实现中使用的类型数组.这在Java中可行吗?
Varargs旨在让我拥有给定类的任意数量的参数.
我想使用它(或类似的东西)让我的方法接受几个参数,每个参数都是给定不同类的成员.绑定泛型时定义这些类.
我知道有解决方法,但有一种类型安全的方法吗?
场景:
我想要一个包含标准牌组中所有扑克牌的枚举.对于这个例子,忽略这些笑话.
写作
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.
跟进上一个问题
如果您已经阅读了上一个问题,则另一个标题可能是:
我的守护程序应该多久检查一次它是否被中断?
我理解如何使用stdin/stdout/stderr在每个命令的基础上通过命令行与用户交互(如git/maven/javac等)
但是我想创建一个更像Vim/Emacs的界面.也就是说,当程序运行时,它会清除终端,显示全屏字符,并停用回声.当完成伪造窗口'关闭'并且终端返回到它之前的状态时,好像什么也没发生.
我想知道如何使用命令行界面产生类似窗口的行为.我目前正在为unix编程java,但理想情况下我想要更一般的解释.
谢谢
java ×4
jvm ×2
coding-style ×1
command-line ×1
daemon ×1
enums ×1
generics ×1
loops ×1
syntax ×1