Tag: java

爪哇:三元没有回报。 (用于方法调用)

我想知道是否可以做一个三元操作,但没有返回任何东西。 如果在Java中不可能,那么在其他语言中是可能的,如果是的话,哪些是适用的? name.isChecked() ? name.setChecked(true):name.setChecked(false);

调用array.length的成本是多less?

在我们的应用程序中更新循环到for-each循环时,我遇到了很多这样的“模式”: for (int i = 0, n = a.length; i < n; i++) { … } 代替 for (int i = 0; i < a.length; i++) { … } 我可以看到你获得集合的性能,因为你不需要在每个循环中调用size()方法。 但是用数组 所以问题出现了: array.length比普通variables更昂贵吗?

BitSet和从整数/长整数

如果我有一个整数,我想执行位操作,我怎么能加载到一个java.util.BitSet ? 我怎样才能把它转换回int或long? 我不太关心BitSet的大小 – 它将始终是32或64位长。 我只想使用set() , clear() , nextSetBit()和nextClearBit()方法而不是按位运算符,但我找不到一个简单的方法来初始化一个数字types的位集。

Java类名中的有效字符

什么字符在Java类名中是有效的? 还有哪些规则pipe理Java类名(例如,Java类名不能以数字开头)?

在JTabbedPane选项卡标题中的Java:JProgressBar(或等价物)

如果我真的想这样做,我可以把一个JProgressBar(或它的等价物)在JTabbedPane选项卡? (我的意思是,不是在标签本身, 我将如何做这样的事情? 编辑我真的想把进度栏的标签的标题,而不是标签本身。 这是一些ascii艺术: —————————————————- | Tab 1 || Tab 2||Tab-with-progress-bar||Tab 4| ———– ——————————– ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' —————————————————- 所以这是真正的“标签2”,目前可见,但我希望进度条(或同等)在第三个标签的标题中可见。 编辑2 这必须在Java 1.5上工作:这必须在无数的MacOS 10.4和MacOS 10.5苹果电脑上运行,这些电脑将永远不会配备Java 6(有些是做的,有些是不行的,而且从来不会这样做,这不是我的呼叫)

使用==运算符比较float / double值

当我开始使用相等运算符来比较两个浮点值时,我使用的代码审查工具与下面的投诉。 什么是正确的方法和如何做到这一点? 是否有帮助function(commons- *)在那里,我可以重用? 描述 无法使用equals(==)运算符比较浮点值 说明 通过使用等号(==)或不等号(!=)运算符比较浮点值并不总是准确的,因为舍入错误。 build议 比较两个浮点值,看它们是否接近值。 float a; float b; if(a==b) { .. }

我们是否应该使用EventQueue.invokeLater来处理Java桌面应用程序中的任何GUI更新?

我知道通过使用这个方法,runnable参数被提交给系统EventQueue。 但是,所有的GUI更新都应该使用这种方法来完成? 我的意思是,如果我想说,更改JButton的文本,我应该使用这样的东西: java.awt.EventQueue.invokeLater(new Runnable() { public void run() { jButton1.setText("changed text"); } }); 如果我应该使用这种方法,我们可以使用任何模式来避免这个重复的代码?

如何添加两个java.lang.Numbers?

我有两个数字。 例如: Number a = 2; Number b = 3; //Following is an error: Number c = a + b; 为什么在数字上不支持算术运算? 无论如何,我将如何在java中添加这两个数字? (当然我从某个地方得到他们,我不知道他们是整数或浮动等)。

实例化内部类

我正在处理一个示例性的问题: 重写 hashCode和equals方法,但得到一个错误:“不能包含CustomHashCodeExampletypes的封闭实例,必须使用一个封闭的CustomHashCodeExampletypes实例来限定分配(egxnew A()其中x是一个实例)我写了一个内部类HashPerson,当我试图在名为testHashCodeOverride()的另一个方法中实例化这个内部类时,我得到了这个错误。 public static void testHashCodeOverride(){ System.out.println("\nTest HashCode Override Method"); System.out.println("==================================\n"); HashPerson william = new HashPerson("willy"); HashPerson bill = new HashPerson("willy"); } 此代码工作正常,即使我没有看到静态内部类或外部类的实例,困惑:( public class HashCodeExample { public static void testHashCodeOverride() { HashPerson william = new HashPerson("Willy"); HashPerson bill = new HashPerson("Willy"); System.out.println("Hash code for william = " + william.hashCode()); System.out.println("Hash code for […]

当我使用javax.tools.JavaCompiler编译源代码时如何设置classpath?

我使用类javax.tools.JavaCompiler (jdk6)编译源文件,但源文件依赖于某个jar文件。 如何设置javax.tools.JavaCompiler的类path?