在java中使setter返回“this”是好的还是坏主意? public Employee setName(String name){ this.name = name; return this; } 这种模式可以是有用的,因为那样你可以像这样链接setter: list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); 而不是这个: Employee e = new Employee(); e.setName("Jack Sparrow"); …and so on… list.add(e); …但有点违背标准惯例。 我认为这可能是值得的,因为它可以使这个二传手做一些有用的事情。 我已经看到这种模式使用了一些地方(如JMock,JPA),但它似乎并不常见,并且通常只用于定义非常好的API,这种模式在任何地方都可以使用。 更新: 我所描述的显然是有效的,但是我真正想要的是关于这是否普遍接受的一些想法,以及是否有任何陷阱或相关的最佳实践。 我知道关于Builder的模式,但是我所描述的更多一点 – 就像Josh Bloch描述的那样,它有一个关联的静态生成器类来创build对象。
我需要比较两个Date (例如date1和date2 ),并提出一个boolean sameDay是真实的两个Date共享同一天,如果不是。 我怎样才能做到这一点? 这里似乎有一个混乱的旋风……如果可能的话,我想避免在JDK以外的其他依赖。 澄清:如果date1和date2共享同一年份,月份和date,则sameDay为true,否则为false。 我意识到这需要了解一个时区的知识……只要我知道行为是什么,那么通过一个时区将是很好的,但我可以住在格林尼治标准时间或当地时间。 再次澄清: date1 = 2008 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = true date1 = 2009 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = false date1 = 2008 Aug 03 12:00:00 date2 = 2008 Jun 03 12:00:00 => sameDate […]
我试图用下面的一段代码将包含Integer对象的ArrayList转换为原始int [],但是这是抛出编译时错误。 是否有可能在Java中进行转换? List<Integer> x = new ArrayList<Integer>(); int[] n = (int[])x.toArray(int[x.size()]);
我们什么时候使用AtomicReference? 是否需要在所有multithreading程序中创build对象? 提供一个使用AtomicReference的简单示例。
loggingexception的填充消息和堆栈跟踪的正确方法是什么? logger.error( "\ncontext info one two three: {} {} {}\n", new Object[] {"1", "2", "3"}, new Exception("something went wrong")); 我想产生一个类似于这样的输出: context info one two three: 1 2 3 java.lang.Exception: something went wrong stacktrace 0 stacktrace 1 stacktrace … slf4j版本1.6.1
只是想知道是否有人尝试使用Android的新的Java 7语言function? 我知道Android读取Java吐出的字节码并将其转换为dex。 所以我想我的问题是它能理解Java 7的字节码吗?
我是Hibernate的新手,并不清楚是使用SessionFactory还是EntityManagerFactory来获取hibernate会话。 两者有什么区别? 优点缺点?
Eclipse不会为我突出显示匹配的variables: 我已经试图通过改变“标记事件” Window -> Preferences -> Java -> Editor -> Mark Occurrences 但它没有工作。 我不知道为什么这不起作用,而其他人已经能够解决这个问题。 任何人都可以告诉我如何设置突出显示匹配variables? 寻找同样的变数,我的眼睛真的困扰了我太多。
我长期以来一直是IntelliJ IDEA的用户,但是我有这个问题。 当我在一个.java文件中时,未使用的代码通常是灰色的,或者有一个绿色的下划线,说这个代码可能会(可能是因为一些奇怪的JNI /reflectionangular的情况下)将不被使用。 但是我有这个项目有成千上万的Java文件,我想find这种可能未使用的代码的所有实例。 我怎么能在IntelliJ IDEA中做到这一点?
Java有一定的缓慢的声誉 。 Java真的很慢吗? 如果是,为什么? 瓶颈在哪里? 是因为效率低下的JVM吗? 垃圾收集? 纯字节码库而不是JNI包装的C代码? 许多其他语言具有这些function,但他们没有这种缓慢的声誉。