Tag: java

我不能在Java中创build通用数组types的原因是什么?

Java不允许我们这样做的原因是什么? private T[] elements = new T[initialCapacity]; 我可以理解,.NET不允许我们这样做,因为在.NET中你有值types,在运行时可以有不同的大小,但在Java中,所有types的T将是对象引用,因此具有相同的大小如我错了请纠正我)。 是什么原因?

你如何在Java中做一个对象的深层拷贝?

在java中,实现深层对象复制function有点困难。 你采取了哪些步骤来确保原始对象和克隆的对象不共享?

Java中的HTTP URL地址编码

我的Java独立应用程序从用户获取一个URL(指向一个文件),我需要打它并下载它。 我面临的问题是我无法正确编码HTTP URL地址… 例: URL: http://search.barnesandnoble.com/booksearch/first book.pdf java.net.URLEncoder.encode(url.toString(), "ISO-8859-1"); 回报我: http%3A%2F%2Fsearch.barnesandnoble.com%2Fbooksearch%2Ffirst+book.pdf 但是,我想要的是 http://search.barnesandnoble.com/booksearch/first%20book.pdf (空格replace为%20) 我猜URLEncoder不是devise用于编码HTTP URL的… JavaDoc说“HTML表单编码的工具类”…有没有其他的方式来做到这一点?

Java:深层克隆/复制实例的推荐解决scheme

我想知道是否有一个推荐的方法在java中做深层克隆/副本的实例。 我有三个解决scheme,但我可以错过一些,我想听听你的意见 编辑:包括Bohzo提议和提炼的问题:这是关于深层克隆而不是浅层克隆。 自己做: 在属性之后用手特性对克隆进行编码,并检查可变实例是否被克隆。 亲们: – 将执行什么的控制 – 快速执行 缺点: – 繁琐的编写和维护 – 容易出错(复制/粘贴失败,缺less属性,重新分配的可变属性) 使用reflection: 使用自己的reflection工具或外部帮助程序(如jakarta common-beans),编写通用复制方法可以轻松完成这一工作。 亲们: – 易于编写 – 没有维修 缺点: – 对发生什么的控制较less – 如果reflection工具不克隆子对象,则可能会出现可变对象 – 执行速度较慢 使用克隆框架: 使用一个框架,为你做,如: commons-lang SerializationUtils Java深度克隆库 推土机 KRYO 亲们: – 和反思一样 – 更多地控制将要被克隆的东西。 缺点: – 每个可变实例都被完全克隆,即使在层次结尾 – 可能执行起来非常慢 使用字节码工具在运行时编写克隆 javassit , BCEL或cglib可能会被用来生成一个专门的克隆,就像一只手写的一样快。 有人知道为了这个目的使用这些工具之一的库吗? 我在这里错过了什么? 你会推荐哪一个? 谢谢。

如何从int转换为String?

我正在做一个项目,从int到String所有转换都是这样完成的: int i = 5; String strI = "" + i; 我不熟悉Java。 按照我的设想,这是一种惯常的做法还是错误的?

Java和SQLite

我被一个文件数据库提供的整洁吸引住了。 什么驱动程序/连接器库是在那里连接和SQLite与Java使用。 我发现了一个包装库, http://www.ch-werner.de/javasqlite ,但还有其他更多的着名项目可用吗?

在Firebase侦听器中设置Singleton属性值

目前,我正在testingFirebase以及计划在整个应用生命周期中使用的Singleton模型。 我现在坚持的东西似乎很微不足道,但我无法弄清楚我的生活。 我有一个我使用的模型示例:Firebase中的书签。 public class BookSingleton { private static BookSingleton model; private ArrayList<BookMark> bookmarks = new ArrayList<BookMark>(); public static BookSingleton getModel() { if (model == null) { throw new IllegalStateException("The model has not been initialised yet."); } return model; } public ArrayList<Bookmark> theBookmarkList() { return this.bookmarks; } public void setBookmarks(ArrayList<Bookmark> bookmarks){ this.bookmarks = bookmarks; } […]

Java Swing重新validation()vs repaint()

我正在放置一个Swing应用程序,我经常要replaceJPanel的内容。 为此,我调用removeAll() ,然后添加我的新内容,然后调用revalidate() 。 但是我发现旧内容仍然是可见的(虽然被新内容遮蔽了)。 如果除了revalidate()之外,还要调用repaint() revalidate() ,它将按预期工作。 我确信在其他场合,我只是调用revalidate()就足够了。 所以基本上我的问题是 – 我是否需要调用这两个函数?如果不是,我应该什么时候调用它们?

Mockito匹配器如何工作?

Mockito参数匹配器(例如, argThat , eq , same和ArgumentCaptor.capture() )与Hamcrest匹配器的行为非常不同。 Mockito匹配器通常会导致InvalidUseOfMatchersExceptionexception,即使在使用任何匹配器后执行的代码也是如此。 Mockito匹配器会受到怪异规则的约束,例如只要在给定方法中使用匹配器的情况下,只需要使用Mockito匹配器即可。 Mockito匹配器在覆盖Answer或使用(Integer) any()等时可能导致NullPointerException 用Mockito匹配器以某种方式重构代码可能会产生exception和意外的行为,并可能完全失败。 为什么Mockito匹配器是这样devise的,它们是如何实现的?

如何将任何空格字符作为分隔符分割string?

什么样的正则expression式模式需要我传递给java.lang.String.split()方法来使用所有空格字符('','\ t','\ n'等)将一个string拆分为一个子string数组。作为分隔符?