Tag: java

用逗号分隔列表(Java)的最简单方法?

在Java中用逗号分隔列表的最明确的方法是什么? 我知道这样做的几种方法,但我想知道什么是最好的方法(哪里“最好”意味着最清楚和/或最短,而不是最有效的。 我有一个列表,我想循环它,打印每个值。 我想打印每个项目之间的逗号,但不是在最后一个之后(也就是第一个之前)。 List –> Item ( , Item ) * List –> ( Item , ) * Item 样品溶液1: boolean isFirst = true; for (Item i : list) { if (isFirst) { System.out.print(i); // no comma isFirst = false; } else { System.out.print(", "+i); // comma } } 示例解决scheme2 – 创build一个子列表: if (list.size()>0) […]

不可变与不可修改的集合

从集合框架概述 : 不支持修改操作的集合(如add , remove和clear )被称为不可修改 。 不可修改的集合是可修改的 。 另外保证Collection对象中没有变化的Collection被称为不可变的 。 不可变的集合是可变的 。 我无法理解这个区别。 这里不可 修改和不可变的区别是什么?

你如何有效地处理maven-3时间戳快照?

既然maven-3确实放弃了对快照制品的<uniqueVersion> false </ uniqueVersion>的支持,看起来你确实需要使用时间戳SNAPSHOTS。 特别是在内部使用maven 3的m2eclipse似乎受到了影响,当SNAPSHOTS不唯一时,update-snapshots不起作用。 将所有快照设置为uniqueVersion = false似乎是最佳做法 现在,切换到时间戳版本似乎没有什么大问题,毕竟他们是由一个中央连接库pipe理的,它可以在常规的intervalls中删除旧的快照。 问题是当地的开发人员工作站。 他们的本地存储库通过独特的快照迅速增长。 如何处理这个问题? 现在我看到以下可能的解决scheme: 要求开发人员定期清除存储库(这会导致大量的篡改,因为删除需要很长时间,甚至需要更长时间才能下载) 设置一些脚本,它会删除本地存储库中的所有SNAPSHOT目录,并要求开发人员不时运行该脚本(比第一个更好,但仍需要相当多的时间来运行和下载当前快照) 使用依赖项:purge-local-repository plugin(从eclipse运行时,由于打开的文件,需要从每个项目运行) 在每个工作站上build立连接,并build立一个工作来清理旧的快照(最好的结果,但我不想维护50 + nexus服务器,再加上开发工作站上的内存总是很紧张) 停止使用SNAPSHOTS 保持本地存储库不会占用硬盘空间的最佳方法是什么? 更新: 为了validationbeaviour和给更多的信息我build立一个小的nexus服务器,build立两个项目(a和b),并尝试: A: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>de.glauche</groupId> <artifactId>a</artifactId> <version>0.0.1-SNAPSHOT</version> <distributionManagement> <snapshotRepository> <id>nexus</id> <name>nexus</name> <url>http://server:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement> </project> b: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>de.glauche</groupId> <artifactId>b</artifactId> <version>0.0.1-SNAPSHOT</version> <distributionManagement> <snapshotRepository> […]

MySQL JDBC驱动程序5.1.33 – 时区问题

一些背景: 我有一个运行在Tomcat 7上的Java 1.6 webapp。数据库是MySQL 5.5。 以前,我使用Mysql JDBC驱动程序5.1.23连接到数据库。 一切正常。 我最近升级到了Mysql JDBC驱动程序5.1.33。 升级之后,Tomcat会在启动应用程序时抛出这个错误。 WARNING: Unexpected exception resolving reference java.sql.SQLException: The server timezone value 'UTC' is unrecognized or represents more than one timezone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc timezone value if you want […]

将上下文path添加到Spring Boot应用程序

我正尝试以编程方式设置Spring Boot应用程序上下文根。 上下文根的原因是我们希望从localhost:port/{app_name}访问应用程序,并将所有控制器path附加到它。 这是Web应用程序的应用程序configuration文件。 @Configuration public class ApplicationConfiguration { Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class); @Value("${mainstay.web.port:12378}") private String port; @Value("${mainstay.web.context:/mainstay}") private String context; private Set<ErrorPage> pageHandlers; @PostConstruct private void init(){ pageHandlers = new HashSet<ErrorPage>(); pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,"/notfound.html")); pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,"/forbidden.html")); } @Bean public EmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); logger.info("Setting custom configuration for Mainstay:"); logger.info("Setting port to {}",port); […]

在Jar文件中运行类

如果在/ myfolder中有一个名为myJar.jar的jar文件,并且想从中使用名为myClass的类,那么如何从命令行执行? 我认为这将是进入目录并说java -cp myJar.jar.myClass但是这是行不通的。 任何帮助,将不胜感激。

Jar Mismatch在依赖列表中find了2个版本的android-support-v4.jar

我正在尝试创buildAndroid应用(免费/付费)的2个版本。 我有一个Android库,其中包含两个通用的文件。 我创build了一个新的Android项目,并试图使用库,但得到下面的错误: Found 2 versions of android-support-v4.jar in the dependency list, but not all the versions are identical (check is based on SHA-1 only at this time). All versions of the libraries must be the same at this time. Versions found are: Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar Length: 349252 SHA-1: 612846c9857077a039b533718f72db3bc041d389 Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar Length: 337562 […]

在Java中抓取数组的一部分,而不用在堆上创build新的数组

我正在寻找一种Java方法,将返回一个数组的一部分。 一个例子是获取包含字节数组的第4个和第5个字节的字节数组。 我不想在堆内存中创build一个新的字节数组,只是为了做到这一点。 现在我有以下代码: doSomethingWithTwoBytes(byte[] twoByteArray); void someMethod(byte[] bigArray) { byte[] x = {bigArray[4], bigArray[5]}; doSomethingWithTwoBytes(x); } 我想知道是否有办法做doSomething(bigArray.getSubArray(4, 2)) ,其中4是偏移,2是长度,例如。

如何获取覆盖hashCode()的对象的唯一标识符?

当Java中的一个类没有重写hashCode()时 ,打印这个类的实例会给出一个很好的唯一编号。 Object的Javadoc说关于hashCode() : 尽可能多地合理实用,由类Object定义的hashCode方法确实为不同的对象返回不同的整数。 但是当类重写hashCode()时 ,我怎样才能得到它的唯一编号?

GSON – date格式

我试图在Gson输出中有一个自定义的date格式,但.setDateFormat(DateFormat.FULL)似乎不工作,它与.registerTypeAdapter(Date.class, new DateSerializer()) 。 这就像Gson不关心对象“Date”并打印它的方式。 我怎样才能改变呢? 谢谢 编辑: @Entity public class AdviceSheet { public Date lastModif; […] } public void method { Gson gson = new GsonBuilder().setDateFormat(DateFormat.LONG).create(); System.out.println(gson.toJson(adviceSheet); } 我总是使用java.util.Date ; setDateFormat()不起作用:(