Tag: java

在java中使用wait()和notify()的简单场景

我可以得到一个完整的简单的scheme,即教程,build议如何使用,特别是与队列?

Java 8获得者应该返回可选types吗?

在Java 8中引入的Optionaltypes对许多开发人员来说是一个新事物。 是一个getter方法返回Optional<Foo>types来代替经典的Foo一个好的做法吗? 假定该值可以为null 。

javafx使用来自MainController或适当Controller类中的其他控制器的对象

我有以下代码: package pl.javastart.youtufy.controller; import java.net.URL; import java.util.ResourceBundle; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.ToggleButton; import javafx.scene.web.WebEngine; import javafx.stage.Stage; public class ConnectionErrorController implements Initializable { @FXML private Label infoLabel; @FXML private Button tryButton; @FXML private Button exitButton; @Override public void initialize(URL location, ResourceBundle resources) { […]

使用准备好的语句来设置表名

我试图使用准备语句来设置表名来select数据,但是当我执行查询时,我不断收到错误。 错误和示例代码显示在下面。 [Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required. private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date public Execute(String reportDate){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(Display.DB_MERC); PreparedStatement st = conn.prepareStatement(query1); st.setString(1, reportDate); ResultSet rs = st.executeQuery(); 有什么想法可能造成这个?

什么是Java最好的模拟框架?

在Java中创build模拟对象的最佳框架是什么? 为什么? 每个框架的优缺点是什么?

实现vs扩展:何时使用? 有什么不同?

请用易于理解的语言或某篇文章的链接来解释。

对检查exception的情况

多年来,我一直无法得到一个像样的答案:为什么有些开发人员如此反对检查exception? 我经历了很多次的交谈,在博客上阅读,读了布鲁斯·艾克尔(Bruce Eckel)所说的话(我看到的第一个人对他们说的话)。 我目前正在写一些新的代码,并非常小心地注意我如何处理exception。 我试图看到“我们不喜欢被检查的例外”的观点,我仍然看不到它。 每一次谈话结束时都会有同样的问题没有答案…让我来设置它: 一般来说(从Java如何devise), 错误是不应该被捕获的事情(VM有一个花生过敏,有人扔了一jar花生) RuntimeException是程序员做错的事情(程序员离开数组的末尾) exception(RuntimeException除外)是指程序员无法控制的事情(在写入文件系统时磁盘已满,已达到进程的文件句柄限制,您无法再打开任何文件) Throwable只是所有exceptiontypes的父项。 我听到的一个共同的观点是,如果发生exception,那么所有开发人员将要做的就是退出程序。 我听到的另一个常见的观点是,检查exception使得重构代码变得更加困难。 对于“我要做的就是退出”的论点,我说即使你退出,你也需要显示一个合理的错误信息。 如果您只是在处理错误,那么当程序退出时,您的用户不会过于高兴,而没有明确指出原因。 对于“重构难以重构”的人群来说,这表明没有select适当的抽象层次。 IOException不应该声明方法抛出IOException,而应该将IOException转换为更适合正在发生的exception。 我没有用catch(Exception)(或者在某些情况下catch(Throwable)来包装Main以确保程序可以正常退出 – 但是我总是会捕获我需要的特定的exception。这样做可以让我,至less要显示一个合适的错误信息。 人们从不回答的问题是: 如果抛出RuntimeException子类而不是Exception子类,那么你怎么知道你应该捕获什么呢? 如果答案是catch Exception,那么你也像处理系统exception一样处理程序员错误。 这对我来说似乎是错误的。 如果你捕获Throwable,那么你正在以同样的方式处理系统exception和VM错误(等等)。 这对我来说似乎是错误的。 如果答案是你只捕获了你所知道的exception,那么你怎么知道抛出的是什么? 当程序员X抛出一个新的exception并忘记捕捉它时会发生什么? 这对我来说似乎非常危险。 我会说一个显示堆栈跟踪的程序是错误的。 那些不喜欢检查exception的人不会有这种感觉吗? 所以,如果你不喜欢检查的exception,你可以解释为什么不是和回答没有得到回答的问题吗? 编辑:我没有寻找什么时候使用任何模型的build议,我在寻找的是为什么人们从RuntimeException延伸,因为他们不喜欢从exception扩展和/或为什么他们捕获一个exception,然后重新抛出一个RuntimeException而不是添加抛出他们的方法。 我想了解不喜欢检查exception的动机。

JPA和Hibernate有什么区别?

我知道JPA 2是一个规范,Hibernate是一个ORM的工具。 另外,我明白Hibernate比JPA 2有更多的function。但是从实际的angular度来看,真正的区别是什么? 我有使用iBatis的经验,现在我试图学习Hibernate或JPA2。 我拿起了专业JPA2书,它一直提到“JPA提供者”。 例如: 如果您认为某项function应该标准化,那么您应该向JPA提供商说出要求 这使我困惑,所以我有几个问题: 单独使用JPA2可以通过简单地注释我的POJO来从DB获取数据 JPA2是否应该与“JPA Provider”(例如TopLink或Hibernate)一起使用? 如果是这样的话,与单独使用Hibernate相比,使用JPA2 + Hibernate有什么好处? 你能推荐一本好实用的JPA2书吗? “Pro JPA2”看起来更像是一本关于JPA2的圣经和参考书(直到后半部分才进入查询)。 是否有一本书对JPA2采取问题/解决scheme?

有用的Eclipse Java代码模板

您可以通过Eclipse在Eclipse中创build各种Java代码模板 Window->Preferences->Java -> Editor -> Templates 例如 sysout被扩展为: System.out.println(${word_selection}${});${cursor} 你可以通过inputsysout然后按CTRL+SPACE来激活它 你目前使用哪些有用的Java代码模板? 包括它的名字和描述以及为什么它很棒。 有一个开放的赏金在这个原始/新颖的使用模板,而不是一个内置的现有function。 创buildLog4Jlogging器 显示swt颜色 Syncexec – Eclipse框架 单例模式/枚举单例生成 READFILE 常量 Traceout 格式string 评论代码审查 string格式 试试最后locking 消息格式i18n和日志 Equalsbuilder Hashcodebuilder Spring对象注入 创buildFileOutputStream

如何获得精确的屏幕中间,即使重新resize

好的,这类问题有两个部分。 当我制作一个JFrame并在上面画一些东西的时候,即使我把宽度设置为400,并且使得当一个物品碰到它(当然,允许物品的宽度),它会弹回来。 但由于某种原因,屏幕总是会出现10像素左右的偏差。 有没有办法解决这个问题,还是我只需要通过加/减号来弥补? 我怎样才能得到精确的屏幕中心。 所以,如果我制作一个默认为200 * 200像素的JFrame ,那么中心就是100 * 100。 (考虑到问题1的问题)但是如果有人调整屏幕大小(是的,我希望他们能够重新resize),那么这个问题仍然是重中之重。 所以如果他们把它做成全屏,屏幕尺寸是1200 * 900,那么中心就是600 * 450。 我希望这是清楚的