Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

7
Java 8中findAny()和findFirst()之间的区别
Наэтотвопросестьответына堆栈溢出нарусском:Какиеразличиямежду的FindFirstивfindAny的Java 8? 我对Java 8中的 APIStream#findAny()和一点都不感到困惑。Stream#findFirst()Stream 我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素? 那么,为什么要用两种方法完成同一任务?我想念什么吗?

24
缺少工件com.sun:tools:jar
我一直在遵循入门教程,但是在使用Maven导入playn项目后陷入困境。我正在使用在64位Windows 7上运行的Eclipse Indigo。 所有导入的项目都具有相同的错误: Missing Artifact com.sun:tools:jar in all the pom.xml files. 经过几个小时的搜索论坛,我尝试了: 安装最新的Java 1.6.029更改JAVA_HOME环境变量以指向\program files\Java\jdk1.6_029 更改Eclipse Java首选项以使用JRE jdk1.6_029。 我真的很想尝试playn,但是为什么有几篇文章我似乎找不到解决方案的共识答案。有人说Sun从64位jdk中删除了一些东西,其他人说您必须编辑xml文件,许多人说您已更改JAVA_HOME,另一些人说您必须更改Eclipse的VM选项。 因为我在这里没有特别奇怪的设置,所以对清除此问题的任何帮助将不胜感激,并且可能对许多人有用。 (编辑)这是第一个项目中的pom.xml。Eclipse在该行中指出错误: <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.googlecode.playn</groupId> <artifactId>playn-project</artifactId> <version>1.1-SNAPSHOT</version> </parent> <artifactId>playn-android</artifactId> <name>PlayN Android</name> <packaging>jar</packaging> <repositories> </repositories> <dependencies> <dependency> <groupId>com.googlecode.playn</groupId> <artifactId>playn-core</artifactId> <version>${project.version}</version> </dependency> <!-- needed because Android uses …
90 java  maven  playn 






12
有没有更好的方法在Java中组合两个字符串集?
在过滤掉冗余信息时,我需要组合两个字符串集,这是我想出的解决方案,有没有人可以建议的更好方法?也许我忽略了内置的东西?谷歌没有任何运气。 Set<String> oldStringSet = getOldStringSet(); Set<String> newStringSet = getNewStringSet(); for(String currentString : oldStringSet) { if (!newStringSet.contains(currentString)) { newStringSet.add(currentString); } }
90 java  set 

7
从@ComponentScan中排除@Component
我有一个要从@ComponentScan特定对象中排除的组件@Configuration: @Component("foo") class Foo { ... } 否则,它似乎与我项目中的其他班级发生冲突。我不完全了解碰撞,但是如果我注释掉@Component注释,事情就会像我希望的那样工作。但是依赖该库的其他项目希望此类由Spring管理,因此我只想在我的项目中跳过它。 我尝试使用@ComponentScan.Filter: @Configuration @EnableSpringConfigured @ComponentScan(basePackages = {"com.example"}, excludeFilters={ @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)}) public class MySpringConfiguration {} 但它似乎不起作用。如果尝试使用FilterType.ASSIGNABLE_TYPE,则会收到一个奇怪的错误,提示您无法加载一些看似随机的类: 原因:java.io.FileNotFoundException:类路径资源[junit / framework / TestCase.class]无法打开,因为它不存在 我也尝试type=FilterType.CUSTOM如下使用: class ExcludeFooFilter implements TypeFilter { @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { return metadataReader.getClass() == Foo.class; } } @Configuration …

11
如何使用ScheduledExecutorService每天在特定时间运行某些任务?
我想每天早上5点执行某项任务。因此,我决定使用ScheduledExecutorService此功能,但到目前为止,我已经看到了一些示例,这些示例演示了如何每隔几分钟运行一次任务。 而且我找不到任何示例来说明如何每天在特定时间(上午5点)每天运行任务,并且还考虑了夏令时的事实- 以下是我的代码,每15分钟运行一次- public class ScheduledTaskExample { private final ScheduledExecutorService scheduler = Executors .newScheduledThreadPool(1); public void startScheduleTask() { /** * not using the taskHandle returned here, but it can be used to cancel * the task, or check if it's done (for recurring tasks, that's not * going to be …

4
您可以向AssertJ assertThat添加自定义消息吗?
我们有一个测试套件,主要使用带有Hamcrest匹配器的JUnit断言。我们的一个团队开始对AssertJ进行实验,并以其语法,灵活性和声明性给人留下了深刻的印象。JUnit提供的一项功能是我无法在AssertJ中找到与之等效的功能:添加自定义断言失败消息。 我们经常在比较不是为了人类可读性而制成的对象,这些对象将具有随机寻找的Id或UUID,并且无法通过包含的数据来判断它们应该是什么。不幸的是,对于我们的代码库来说,这是不可避免的情况,因为它实现的目的之一就是在其他服务之间映射数据而不必了解它是什么。 在JUnit中,该assertThat方法在String reason参数之前提供一个带有参数的版本Matcher<T>。这使得添加简短的调试字符串变得轻而易举,从而避免了对该问题的一些了解,例如,比较对人类意味着什么。 另一方面,AssertJ提供了十亿种不同的通用static assertThat方法,这些方法返回某种形式的接口Assert或其许多实现类之一。此接口不提供设置失败时包括的自定义消息的标准方法。 有什么方法可以从AssertJ API或其扩展之一中获得此功能,而不必为要向其添加消息的每个断言类型创建自定义断言类?

8
在Java 8中按多个字段名称分组
我找到了通过POJO中的某些字段名称对对象进行分组的代码。以下是该代码: public class Temp { static class Person { private String name; private int age; private long salary; Person(String name, int age, long salary) { this.name = name; this.age = age; this.salary = salary; } @Override public String toString() { return String.format("Person{name='%s', age=%d, salary=%d}", name, age, salary); } } public …
90 java  java-8 

14
如何在不超过最大值的情况下递增变量?
我正在为学校设计一个简单的视频游戏程序,并且创建了一种方法,如果调用该方法,玩家将获得15个健康点。我必须保持最大生命值100,并且由于目前有限的编程能力,我正在执行此类操作。 public void getHealed(){ if(health <= 85) health += 15; else if(health == 86) health += 14; else if(health == 87) health += 13; }// this would continue so that I would never go over 100 我了解我的语法不是很完美,但是我的问题是,什么是更好的方法,因为我还必须对损坏点做类似的事情,并且不要低于0。 这称为饱和算术。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.