小编Fra*_*aly的帖子

覆盖Java中的常量

我有两个扩展相同抽象类的类.它们都需要相同的常数,但具有不同的值.我怎样才能做到这一点?一些示例代码显示了我想要做的事情.

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.对于此,是否有任何方法可以使用静态?

java inheritance overriding constants

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

Java Mutable BigInteger类

我正在使用BigIntegers进行计算,它使用一个调用multiply()大约1000亿次的循环,而BigInteger创建的新对象使得它非常慢.我希望有人写过或找到了一个MutableBigInteger类.我在java.math包中找到了MutableBigInteger,但它是私有的,当我将代码复制到一个新类时,会出现很多错误,其中大部分都是我不知道如何修复的.

像MutableBigInteger这样的Java类有哪些实现允许修改值?

java precision performance mutable biginteger

14
推荐指数
1
解决办法
5282
查看次数

如何在Swing中创建延迟

我制作了一个二十一点游戏,我希望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 swing sleep delay thread-sleep

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