在这个问题上 ,有很多关于generics的内容以及他们在幕后做了些什么,所以我们都知道Vector<int[]>是整数数组的向量,而HashTable<String, Person>是一个表的键是string和值Person 。 但是,什么让我难过的是Class<>的用法。 java class Class应该也是一个模板名,(或者我被eclipse中的黄色下划线所告知)。 我不明白我应该放在那里。 Class对象的全部重点是当你没有完全掌握一个对象的信息,reflection等等。 为什么它会让我指定Class对象将保持哪个类? 我显然不知道,或者我不会使用Class对象,我会使用具体的一个。
我查看了JDK和Apache压缩库附带的默认Zip库,我不满意这三个原因: 他们臃肿,糟糕的APIdevise。 我必须写50行的锅炉板字节数组输出,zipinput,文件输出stream和closures相关的stream,并捕捉exception和我自己的字节缓冲区 ? 为什么我不能有一个看起来像这样的Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)和Zipper.zip(File targetDirectory, String password = null)的简单API? 它似乎压缩解压缩文件元数据和密码处理破坏。 另外,与我用UNIX获得的命令行压缩工具相比,我尝试的所有库都慢了2-3倍? 对我来说(2)和(3)是次要的,但我真的想要一个单线接口的好的testing库。
我有一个项目有几个模块。 当所有的testing通过,Maventesting运行它们。 当第一个模块中的testing失败时,maven将不会继续下一个项目。 我在Surefire设置中将testFailureIgnore设置为true,但是没有帮助。 我如何让Maven运行所有testing?
根据我的理解,我认为: 两个对象具有相同的哈希码是完全合法的。 如果两个对象相等(使用equals()方法),那么它们具有相同的哈希码。 如果两个对象不相等,则它们不能具有相同的哈希码 我对么? 现在,如果正确,我有以下问题: HashMap内部使用该对象的哈希码。 因此,如果两个对象可以具有相同的哈希码,那么HashMap如何跟踪它使用的密钥呢? 有人可以解释HashMap如何在内部使用对象的哈希码吗?
我正在查看LinkedList的Java代码,并注意到它使用了静态嵌套类Entry 。 public class LinkedList<E> … { … private static class Entry<E> { … } } 什么是使用静态嵌套类,而不是一个正常的内部类的原因是什么? 我能想到的唯一原因是Entry不能访问实例variables,所以从OOP的angular度来看,它具有更好的封装性。 但我想可能还有其他的原因,也许是performance。 它可能是什么? 注意。 我希望我已经得到了我的条款正确的,我会把它称为一个静态的内部类,但我认为这是错误的: http : //java.sun.com/docs/books/tutorial/java/javaOO/nested.html
我用@Test注解编写了一些JUnittesting。 如果我的testing方法抛出一个检查exception,如果我想断言与exception的消息,是否有办法用JUnit @Test注释这样做? AFAIK,JUnit 4.7不提供这个function,但是未来的版本是否提供这个function呢? 我知道在.NET中,你可以断言消息和exception类。 在Java世界中寻找类似的function。 这就是我要的: @Test (expected = RuntimeException.class, message = "Employee ID is null") public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}
我有一个函数返回一个inttypes。 不过,我只有一个TAX枚举值。 我怎样才能将TAX枚举值转换为int? public enum TAX { NOTAX(0),SALESTAX(10),IMPORTEDTAX(5); private int value; private TAX(int value){ this.value = value; } } TAX var = TAX.NOTAX; // This value will differ public int getTaxValue() { // what do do here? // return (int)var; }
在Java中,在接口方法中定义final参数是完全合法的,不要在实现类中遵守这个参数,例如: public interface Foo { public void foo(int bar, final int baz); } public class FooImpl implements Foo { @Override public void foo(final int bar, int baz) { … } } 在上面的例子中, bar和baz在类VS接口中有相反的final定义。 以同样的方式,当一个类方法扩展另一个时,没有final限制,无论是abstract还是非abstract 。 当final方法体内部有一些实用的值时,有没有指定final方法的参数?
有人能告诉我ant和Maven之间的区别吗? 我从来没有用过。 我知道他们习惯于自动化Java项目的构build,但是我不知道从哪里开始。
我正在使用Spring来定义我的应用程序中的阶段。 它被configuration为必要的类(这里称为Configurator )被注入阶段。 现在我需要另一个类中的阶段列表,名为LoginBean 。 Configurator器不能访问他的阶段列表。 我不能更改类Configurator 。 我的想法: 定义一个名为Stages的新bean,并将其注入Configurator和LoginBean 。 我的这个想法的问题是,我不知道如何改变这个属性: <property …> <list> <bean … >…</bean> <bean … >…</bean> <bean … >…</bean> </list> </property> 成豆。 像这样的东西不起作用: <bean id="stages" class="java.util.ArrayList"> 有人可以帮我吗?