标签: java-8

识别正在运行的应用程序的 Java 版本

我已经并行安装了 Java 7 Update 45 和 Java 8 Update 25。我在 JavaFX 中遇到了一些文本渲染问题,这些问题应该在 Java 8 Update 25 中修复,所以我想知道应用程序当前使用的是哪个 Java 版本。

有没有办法检查应用程序使用哪个版本的 Java?

我尝试过的:

  • 我在互联网上搜索并找到了 StackOverflow 对Checking the version of JRE used during run-time问题的回答。但是,我想在不修改源代码的情况下检查版本(例如我没有源代码)
  • 我在 StackOverflow 上搜索并没有找到其他答案。

java windows windows-7 java-8

2
推荐指数
1
解决办法
9507
查看次数

如何使用 Java 8 Lambda 验证两个变量

如何使用 Java 8 Lambdas 执行此操作:

Optional<String> code;
if (accountType.requiresCode() && (!code.isPresent() || empty(code.get()))) {
    new IllegalArgumentException("Account type " + accountType + " requires code");
}
Run Code Online (Sandbox Code Playgroud)

lambda java-8

2
推荐指数
1
解决办法
785
查看次数

将数字字符串转换为整数列表

我正在对 java 8 流功能进行一些练习,因此想到将知识应用于将数字字符串转换为整数列表的问题

一个典型的测试看起来像

 @Test
    public void testGetListofIntegersFromString(){
        List<Integer> result = getIntegers("123456780");
        assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,0),result);
    }
Run Code Online (Sandbox Code Playgroud)

我写了下面的方法

List<Integer> getIntegers(String value) {
       return IntStream.rangeClosed(0, value.length() - 1).map(i -> Integer.valueOf(value.substring(i,i+1))).collect(?????);
    }
Run Code Online (Sandbox Code Playgroud)

我被困在使用哪个函数来获取我尝试过的整数列表collect(Collectors.toList())它给出了编译错误。

请建议我们是否可以按照不同的方法来解决这个问题。

java java-8 java-stream

2
推荐指数
1
解决办法
835
查看次数

应用程序不会在 Eclipse 中的 Tomcat 服务器上运行

我正在运行一个突然停止工作的 spring boot 应用程序我不得不升级到不同的笔记本电脑,当我安装软件时 - 突然间我的服务器无法启动

当我尝试在 eclipse 中的 tomcat 服务器上运行我的代码时,我得到的错误如下

java.lang.ClassCircularityError: java/util/logging/LogRecord
at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:198)
at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:287)
at java.util.logging.Logger.log(Logger.java:738)
at java.util.logging.Logger.doLog(Logger.java:765)
at java.util.logging.Logger.logp(Logger.java:930)
at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:180)
at org.apache.juli.logging.DirectJDKLog.debug(DirectJDKLog.java:103)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:369)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Run Code Online (Sandbox Code Playgroud)

我正在使用 Eclipse Mars (4.5)、Java jdk1.8.0_51 和 Tomcat 8 apache-tomcat-8.0.24(与 apache-tomcat-8.0.23 相同的错误)

有没有人对我可以尝试解决这个问题有什么建议?

如果我运行我的 maven 目标来生成 war 文件并直接部署到 tomcat,则不会发生此问题 - 只有当我尝试从 eclipse 中运行我的服务器时才会发生

只是指出 - 当我使用 Java 7 版本 79 时,这一切都完美无缺,但想让它与 Java 8 一起使用

eclipse slf4j maven-3 java-8 tomcat8

2
推荐指数
1
解决办法
2627
查看次数

如何在纯 Java 8 中获取给定日历周的所有周日期列表?

很多 例子可以说明如何使用Joda-Time和旧的java.util.Calendar / java.util.Date API来完成类似的事情,但是没有完整的例子说明如何使用纯java.time API来实现它,没有任何额外的依赖。

还有很多例子,如何为给定的两个日期生成日期。但是我无法找到如何为给定年份和日历周数生成一周日期的完整示例。

您能否提供一个在纯Java 8 / java.time API中执行此操作的示例?

java-8 java-time

2
推荐指数
1
解决办法
1109
查看次数

OptionalInt 是否可重用?

查看 Java8 doc for OptionalInt,似乎OptionalInt无法通过设置新值或清空现有值来重用。此外,JavaDoc 仅展示了通过调用静态方法来初始化 OptionalInt 的两种方法 - 看起来像一个不可变的对象。

真的不能重复使用吗?

想象一个批处理,其中要处理的数据由一个 int 原语组成,它可以是可选的。对于每一行(假设是数百万行)OptionalInt,必须创建一个新对象。目标是避免不必要的对象实例化和额外的垃圾收集。所以我宁愿自己重新实现它并避免使用 Java8 实用程序类OptionalInt

java optional java-8

2
推荐指数
1
解决办法
553
查看次数

Optional 的返回值

如何StringOptional<String>usingifPresent和 avoid返回值NullPointerException

例子:

public String longestName() {
    Optional<String> longName = someList.stream().reduce((name1, name2) -> name1.length() > name2.length() ? name1 : name2);

    // If I do not want to use following
    // return longName.isPresent() ? longName.get() : "not present";

    // Can I achieve this using longName.ifPresent or longName.orElse("not present");
}
Run Code Online (Sandbox Code Playgroud)

java optional java-8

2
推荐指数
1
解决办法
1万
查看次数

Java 8:如何从列表中创建映射,在该列表中,键是从与对象(员工)本身相同的类(empID)和值中获取的?

在Java 8中,如何从列表转换为映射的形式empID来自类内部和作为对象本身的值。

List<CompanyEntity> result = 
             ifEntityManager.createNamedQuery("findByEmployeeId", CompanyEntity.class)
             .getResultList();
Map<String, CompanyEntity> result1 = result.stream()
        .collect(Collectors.toMap(CompanyEntity::getEmployeeId, CompanyEntity::this)); ??
Run Code Online (Sandbox Code Playgroud)

我想要第二个参数toMap作为对象本身。有人可以建议如何实现相同目标吗?

我尝试这样做,Collectors.toMap(CompanyEntity::getEmployeeId, this)但无法摆脱编译错误。

java arraylist hashmap java-8 collectors

2
推荐指数
1
解决办法
54
查看次数

使用流更改ArrayList中对象的字段值,使代码更有效

我内部ArrayList有一个有限数量的对象。我想在列表中查找字段中的特定值,然后进行更改。

我有以下实现。

String searchName = searchedName; //from outside we provide this
Person person = personList.stream()
        .filter(personList -> searchName.equals(personList.getName()))
        .findFirst()
        .orElse(null);
if (person != null){
    person.setName(replacement);
}
Run Code Online (Sandbox Code Playgroud)

这段代码可以工作,但是流不是我的专长,我的问题是:我是否可以具有相同的行为,而不必付出额外的代价呢?我觉得“如果”是多余的东西,我想使我的代码更有效。

附带的问题是,如果我们有多个具有相同名称的条目,则有一种使用流的方法,因此,除了“ .findFirst().orElse(null)”之外,我还可以使用哪种方法将其存储在person对象或可能的new对象中对象数组。

java object java-8 java-stream

2
推荐指数
1
解决办法
69
查看次数

Java8:从列表到地图收集最小值,最大值和平均值

我有Integres列表,并希望从列表到地图获取最小值,最大值和平均值。下面是我的代码,

List<Integer> numbers = Arrays.asList(-2, 1, 2, 3, 5, 6, 7, 8, 9, 10, 100);

int min = numbers.stream().mapToInt(n -> n).min().getAsInt();
int max = numbers.stream().mapToInt(n->n).max().getAsInt();
double avg = numbers.stream().mapToInt(n->n).average().getAsDouble();

Map<String, Number> result = new HashMap<>();
result.put(“min”, min);
result.put(“max”, max);
result.put(“avg”, avg);
Run Code Online (Sandbox Code Playgroud)

但是我想要在Stream迭代中得到它,

numbers.stream().mapToInt(n->n).collect(toMap/* Map with min, max and average*/ ));
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点?

java java-8 java-stream

2
推荐指数
1
解决办法
73
查看次数