我有这个代码: package tests; import java.util.Hashtable; public class Tests { public static void main(String[] args) { Hashtable<String, Boolean> modifiedItems = new Hashtable<String, Boolean>(); System.out.println("TEST 1"); System.out.println(modifiedItems.get("item1")); // Prints null System.out.println("TEST 2"); System.out.println(modifiedItems.get("item1") == null); // Prints true System.out.println("TEST 3"); System.out.println(Boolean.valueOf(null)); // Prints false System.out.println("TEST 4"); System.out.println(Boolean.valueOf(modifiedItems.get("item1"))); // Produces NullPointerException System.out.println("FINISHED!"); // Never executed } } 我的问题是,我不明白为什么testing3工作正常(它打印false […]
我想使用这个链接中提到的WatchService API: http : //download.oracle.com/javase/tutorial/essential/io/notification.html 经过阅读后,我发现WatchService是计划用于JDK 7的NIO类的一部分。因此,它是beta版本。 没关系。 http://jdk7.java.net/download.html有我下载和提取的JDK。 我有一堆文件夹。 我不知道该怎么办 然后,我再读一遍,发现一些很好的人创build了JDK 7作为一个二进制文件,所以像我这样的人可以很容易地安装它。 它被称为Open JDK: http : //code.google.com/p/openjdk-osx-build/ 所以,我下载了.dmg文件并安装它。 然后我打开“Java偏好”,看看OpenJDK7是可用的。 所以,现在我觉得我可以开始尝试WatchService API了。 从第一个链接的教程中,作者给了一个.java文件来先testing它,并确保它正在运行。 以下是该文件的链接: http : //download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java 所以,我启动Eclipse(实际上我使用STS)并创build一个新的Java项目,并在“使用执行环境JRE:”中selectJaveSE-1.7。 在src文件夹下,我复制粘贴WatchDir.java文件。 而且我仍然看到很多弯曲的红线。 所有的“import.java.nio。*”都是红色的,我不能运行它作为一个Java应用程序。 我需要做什么? 编辑:我其实没有追求使用Java 7,但有很多的兴趣,似乎人们不断回答这个问题。 我应该怎样做才能使它与search它的人更相关? 让我知道通过PMing我。
我目前正在创build一个右键单击上下文菜单通过实例化一个新的JMenu右键单击并将其位置设置为鼠标的位置…有没有更好的方法?
你用什么约定来评论吸气剂和吸附剂? 这是我想了很长一段时间,例如: /** * (1a) what do you put here? * @param salary (1b) what do you put here? */ public void setSalary(float salary); /* * (2a) what do you put here? * @return (2b) */ public float getSalary(); 我总是发现我写了1a / b和2a / b完全相同的东西,例如1a)设置员工的工资,1b)员工的工资。 这似乎是多余的。 现在我可以看到更复杂的东西,你可以在(a)部分写更多的东西来给出上下文,但是对于大部分的获取者/引导者来说,这些措辞几乎是完全相同的。 我只是好奇,对于简单的getter / setters来说,它只能填写(a)部分或(b)部分。 你怎么看?
Java中的Collection和List有什么区别? 什么时候和我应该使用哪一个?
PHP有一个var_dump()函数,用于输出对象的内部内容,显示对象的types和内容。 例如: class Person { private $firstName; private $lastName; public function __construct($firstName, $lastName) { $this->firstName = $firstName; $this->lastName = $lastName; } } $person = new Person('Jon', 'Smith'); var_dump($person); 会输出: object(Person)#1 (2) { ["firstName:private"]=> string(3) "Jon" ["lastName:private"]=> string(5) "Smith" } Java中的等价物会做什么?
我已经注意到在Java SE 6和Java SE 7之间的自动拆箱行为有所不同。我想知道为什么,因为在这两个版本之间我找不到任何有关此行为更改的文档。 这是一个简单的例子: Object[] objs = new Object[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; 这个编译良好的javac从Java SE 7.但是,如果我给编译器“-source 1.6”参数,我在最后一行得到一个错误: inconvertible types found : java.lang.Object required: int 我尝试下载Java SE 6以使用本机版本6编译器进行编译(不带任何-source选项)。 它同意并给出与上述相同的错误。 那么给了什么? 从一些更多的实验看来,Java 6中的拆箱似乎只能清除(在编译时)是盒装types的值。 例如,这两个版本的作品: Integer[] objs = new Integer[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; 所以看起来,在Java 6和7之间,拆箱function得到了增强,因此它可以一次性投射和取消投放对象types,而不知道(在编译时)该值是否是适当的盒装types。 但是,阅读Java语言规范或Java 7发布时撰写的博客post,我看不出有什么变化,所以我想知道这个变化是什么,这个“特性”叫做什么? […]
我正在寻找一个简单的方法在java.util.Date和javax.xml.datatype.XMLGregorianCalendar之间转换。 这里是我现在使用的代码 : import java.util.GregorianCalendar; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; /** * Utility class for converting between XMLGregorianCalendar and java.util.Date */ public class XMLGregorianCalendarConverter { /** * Needed to create XMLGregorianCalendar instances */ private static DatatypeFactory df = null; static { try { df = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException dce) { throw new IllegalStateException( […]
我现在不在IDE的前面,只是看API规范。 CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); } 我想确定一个类来自哪个JAR文件。 这是做到这一点的方法吗?
我们有一个保存应用程序configuration信息的类。 它曾经是一个单身人士。 经过一些build筑审查,我们被告知要删除单身人士。 我们确实看到了在unit testing中不使用单例的一些好处,因为我们可以一次testing不同的configuration。 如果没有单例,我们必须在代码中的任何地方传递实例。 它变得如此混乱,所以我们写了一个单例包装器。 现在我们将相同的代码移植到PHP和.NET,我想知道是否有更好的模式,我们可以使用configuration对象。