我有两个扩展相同抽象类的类.它们都需要相同的常数,但具有不同的值.我怎样才能做到这一点?一些示例代码显示了我想要做的事情.
abstract class A {
public static int CONST;
}
public class B extends A {
public static int CONST = 1;
}
public class C extends A {
public static int CONST = 2;
}
public static void main(String[] args){
A a = new B();
System.out.println(a.CONST); // should print 1
}
Run Code Online (Sandbox Code Playgroud)
上面的代码没有编译,因为CONST没有在类A中初始化.我怎样才能使它工作?对于B的所有实例,CONST的值应为1,对于所有C的实例,CONST的值应为2,对于所有A的实例,CONST的值应为1或2.对于此,是否有任何方法可以使用静态?
我正在使用BigIntegers进行计算,它使用一个调用multiply()大约1000亿次的循环,而BigInteger创建的新对象使得它非常慢.我希望有人写过或找到了一个MutableBigInteger类.我在java.math包中找到了MutableBigInteger,但它是私有的,当我将代码复制到一个新类时,会出现很多错误,其中大部分都是我不知道如何修复的.
像MutableBigInteger这样的Java类有哪些实现允许修改值?
我制作了一个二十一点游戏,我希望AI玩家在拍卡之间暂停一下.我试过简单地使用Thread.sleep(x),但这会让它冻结,直到AI玩家完成所有的牌.我知道Swing不是线程安全的,所以我看了Timers,但我无法理解如何使用它.这是我目前的代码:
while (JB.total < 21) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
System.out.println("Oh noes!");
}
switch (getJBTable(JB.total, JB.aces > 0)) {
case 0:
JB.hit();
break;
case 1:
break done;
case 2:
JB.hit();
JB.bet *= 2;
break done;
}
}
Run Code Online (Sandbox Code Playgroud)
BTW,hit(); 方法更新GUI.
java ×3
biginteger ×1
constants ×1
delay ×1
inheritance ×1
mutable ×1
overriding ×1
performance ×1
precision ×1
sleep ×1
swing ×1
thread-sleep ×1