具有自定义相等标准的Java HashSet?

我正在寻找类似于Java TreeSet在实例化时接收自定义比较器的能力,所以我不需要使用对象的默认相等(和哈希码)标准。 我能想到的最接近的是将我的对象包装在一个私有的自定义类中,但这看起来很糟糕:(这在编程时最终会成为一种反复出现的主题,所以我想知道是否已有可供我们使用的东西。也许在公共图书馆? 谢谢

JAX-RS,将映射到JSON而没有开销?

我正在使用JAX-RS在Java中创建restful webservices。 我在生成的JSON中得到了很多开销。 数据类: @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class Test { private Map data; Test() {} public Test(Map data) { this.data = data; } public Map getData() { return data; } } 服务: @GET @Path(“/test”) @Produces(“application/json; charset=UTF-8;”) public Test test() { Map map = new HashMap(); map.put(“foo”, “bar”); map.put(“bingo”, “bongo”); return new Test(map); } 生产: {“data”:{“entry”:[{“key”:”foo”,”value”:”bar”},{“key”:”bingo”,”value”:”bongo”}]}} […]

Apache POI Streaming(SXSSF)用于阅读

我需要读取大型excel文件并将其数据导入我的应用程序。 由于POI需要大量的堆来工作,经常抛出OutOfMemory错误,我发现有一个Streaming API以串行方式处理excel数据(而不是将文件完全加载到内存中) 我创建了一个xlsx工作簿,只有一个工作表,并在单元格中输入了几个值,并提出以下代码来尝试读取它: public static void main(String[] args) throws Throwable { // keep 100 rows in memory, exceeding rows will be flushed to disk SXSSFWorkbook wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream(“C:\\test\\tst.xlsx”))); SXSSFSheet sheet = (SXSSFSheet) wb.getSheetAt(0); Row row = sheet.getRow(0); //row is always null while(row.iterator().hasNext()){ //-> NullPointerException System.out.println(row.getCell(0).getStringCellValue()); } } 但是,尽管能够正确获取其工作表,但它总是带有空( null )行。 我已经研究并在互联网上找到了几个Streaming […]

桥接模式是否将抽象与实现分离?

我从不同的文章中学习了Bridge模式,并根据我的理解实现了它。 令我困惑的一件事是桥模式说 BridgePattern将抽象与其实现分离,以便两者可以独立变化 这句话是什么意思? 实现是在单独的jar中吗? 什么是独立声明的含义? 考虑提供的journaldev文章,详细说明答案。 任何帮助是极大的赞赏。

如何在使用JAXB进行编组时添加DOCTYPE和xml处理指令?

我正在将JAXB bean编组(序列化)为输出流。 如何添加DOCTYPE声明和xml处理指令以进行输出? 我正在做这样的编组: JAXBContext jaxbContext = JAXBContext.newInstance(“com.example.package”); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); SchemaFactory schemaFactory = SchemaFactory.newInstance(“http://www.w3.org/2001/XMLSchema”); Schema schema = schemaFactory.newSchema(schemaSource); marshaller.setSchema(schema); marshaller.marshal(object, output); 我想要输出看起来像这样: JAXB bean是生成的代码,所以我不想更改它们。 有一些hacks和无证技巧(请参阅使JAXB生成XML处理指令 )来添加xml处理指令和doctype 。 但是这样做的首选或正确方法是什么?

理解Java中的inheritance概念

我只是刷新java的oopsfunction。 所以,我对inheritance概念有点困惑。 为此,我有以下示例代码: class Super{ int index = 5; public void printVal(){ System.out.println(“Super”); } } class Sub extends Super{ int index = 2; public void printVal(){ System.out.println(“Sub”); } } public class Runner { public static void main(String args[]){ Super sup = new Sub(); System.out.println(sup.index+”,”); sup.printVal(); } } 现在上面的代码给出了输出为: 5,Sub。 在这里,我们重写了printVal()方法,因此可以理解它只是访问子类方法。 但我无法理解为什么它从超级类访问x的值… 提前致谢….

有没有一种简单的方法可以将空的Java / Spring表单输入转换为空字符串?

有没有一种简单的方法可以将空表单输入转换为java中的空字符串? 我正在使用spring mvc和SimpleJdbcInsert将对象插入MySQL数据库。 我想在数据库中将空白输入设置为NULL而不是”。 我有很多字段,我希望有一种方法可以做到这一点,而无需手动检查每个值。 谢谢! 编辑 – 所以我是个白痴。 我的几个错误使我相信下面的正确答案是不正确的。 我写了一个propertyEditorSupport,如下所示: class StringEditor extends PropertyEditorSupport { public void setAsText(String text) { String value = text.trim(); if (“” == value) { setValue(null); } else { setValue(value); } } } 两个问题 – 首先,没有getAsText,所以我的表单填充了“null”字符串! 2,我的等式检查是C ++,而不是java。 当我尝试推荐的setter时,我只是重新加载了已经包含“null”字符串的post。 一旦我清理了所有这些,一切都开始工作了。 感谢您的帮助,对不起我的“操作员错误”! 布雷特

如何在hibernate中的多对一映射上定义反级联删除

我有两个类A和B.许多B可以与单个A关联,因此从B到A的多对一关系。我已经映射了这样的关系: A没有映射到B.记住这一点,我们打算在删除关联的A时删除B. 如果我可以在B中的多对一关联中定义inverse =“true”,那么这可能是可能的,但是hibernate不允许这样做。 有人能帮忙吗? 我们不想为此写任何东西。

哪里可以找到一个java库来读取vcard文件?

我需要一个java库来读取vcard文件(vcf)。

JPA如何使复合主键的复合外键部分

我有以下表格如何将它们映射到JPA实体: TABLE Event { EventID SourceID ….Other event fields PK (EventID, SourceID) } TABLE MEETING { MeetingID EventID SourceID …Other meeting fields PK(MeetingID,EventID, SourceID) FK(EventID, SourceID) //FK with Event table } Event表与Meeting表具有一对多的关系。 我如何在JPA中映射这种双向关系?