标签: java-10

如何使用 Spring WebFlux Reactive 方式在处理程序函数中使用 Mono 和 Flux

检查 -->

我的模型看起来像这样。

@Document
public class PlanDetails {

    @Id
    private String id;
    private String name;
    private Double balance;
    private Double internet;
    private Date date;

    --> //String of id's basically.
    private List<String> members;

    public PlanDetails(){}

    public PlanDetails(String id, String name, Double balance, Double internet, Date date, List<String> members){
        this.id = id;
        this.name = name;
        this.balance = balance;
        this.internet = internet;
        this.date = date;
        this.members = members;
    }

    public String getId() {
        return id;
    }

    /* Getter setters ommited for brevity */ …
Run Code Online (Sandbox Code Playgroud)

java spring project-reactor java-10 spring-webflux

4
推荐指数
1
解决办法
9392
查看次数

找不到工件 Jackson-modules-java8:jar

我使用open-jdk-10

mvn clean install
Run Code Online (Sandbox Code Playgroud)

在“中央”中找不到工件 com.fasterxml.jackson.module:jackson-modules-java8:jar:2.9.8

<?xml version="1.0" encoding="UTF-8"?>
<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>group</groupId>
    <artifactId>artifact</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>10</maven.compiler.source>
        <maven.compiler.target>10</maven.compiler.target>
        <jackson.version>2.9.8</jackson.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-modules-java8</artifactId>
            <version>${jackson.version}</version>
        </dependency>
    </dependencies>

</project>
Run Code Online (Sandbox Code Playgroud)

没有jackson-modules-java8它成功构建。

<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-modules-java8</artifactId>
    <version>${jackson.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有一个类似的问题,但它不能解决我的问题。我的 pom 文件中有 maven 依赖项。如果没有其他工作,手动下载东西是我要做的最后一件事。

jackson maven java-10

4
推荐指数
1
解决办法
2471
查看次数

Java 10中"var"的优点/缺点

AFAIK,var不是Java中的关键字.它是保留类型名称.我想知道在什么情况下我们应该使用/避免它.它的用法是否有原则?

import java.util.HashMap;

public class Test {
    public static void main(String[] args) {
        var x = new HashMap<> (); // legal
        var y = new HashMap<String, Integer>(); // legal

        var z = "soner"; // legal
        System.out.println(z);

        var umm = null;  // xx wrong xx //
        var foo; // xx wrong usage without initializer xx //

        var var = 5; // legal

    }
}
Run Code Online (Sandbox Code Playgroud)

java java-10

3
推荐指数
2
解决办法
1047
查看次数

本地类型推断不需要一些import语句吗?

假设我有以下类定义单个static实用程序方法:

import java.io.IOException;
import java.nio.channels.AsynchronousSocketChannel;

public class Utility {
    public static AsynchronousSocketChannel getChannel() {
        try {
            return AsynchronousSocketChannel.open();
        } catch (IOException e) {
            throw new IllegalStateException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我可以创建一个Utility使用此方法的类(位于相同的包中):

public class Test {
    public static void main(String[] args) throws Exception {
        var channel = Utility.getChannel();
        System.out.println(channel);
        channel.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,Test似乎不需要任何import语句,即使它AsynchronousSocketChannel在本地使用.如果我要输入AsynchronousSocketChannel channel = ...;,那么显然需要import语句.

我的假设是在编译时推断导入语句(当利用本地类型推断时)是正确的吗?

java import var type-inference java-10

3
推荐指数
1
解决办法
87
查看次数

为什么JAVA 10中的var无法初始化为null?

我正在玩JAVA 10中引入的新功能,在那里我发现了一个非常有趣的事实,你不能用null声明一个变量.

一旦你写下一段代码,

var a = null;
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误:

变量初始值设定项为null

现在,我们都知道我们不能将基本类型声明为null,所以下面的语句没有任何意义.

int a  = null;
Run Code Online (Sandbox Code Playgroud)

这意味着,如果开发人员正在使用null初始化var,那么它肯定希望在其中放置一个Object,而不是文字val.如果是这样,我的问题是

为什么编译器不认为它是Object var而是抛出错误.

另一方面,如果你写下面的声明,它完全正常:

var a = (Object)null;
Run Code Online (Sandbox Code Playgroud)

声明var为null的原因是什么

考虑下面的情况,我想初始化var并希望在条件块之外使用它:

var a = null;
if(some condition) Initialize with some arguements
else Initialize with some other arguements
//Use a varialble here
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,因为我们希望a的范围在条件块之外,所以我们要求初始化它将在block之外为null,这是使用var无法实现的.

java java-10

3
推荐指数
2
解决办法
955
查看次数

Javadocs未出现在Java 10的Apache netbeans上

Netbeans版本:Apache NetBeans 9.0

Java版本:Java 10

无论我做什么,我都无法让javadocs出现并显示任何方法的详细信息。

我已经进入Java平台和Javadocs,已经为Javadocs设置了Zip,unzip和URL,但它无法正常工作...

Java文件:jdk-10.0.1_doc-all

网址:https//docs.oracle.com/javase/10/docs/api

我在任何地方都找不到答案,他们都提到像我已经尝试过的那样添加文档。

编辑回复:即使添加了“ java.base /”,它仍然不起作用。我什至完全删除了netbeans和所有appdata。重新下载它,安装JDK11,然后再次尝试文档...但还是一样。我疯了吗?

在此处输入图片说明 在此处输入图片说明

java netbeans javadoc java-10

3
推荐指数
2
解决办法
3249
查看次数

Java 10上的Swing问题

我目前正在尝试将我们的应用程序从Java 8迁移到Java 10,并且在几个月内将转向Java 11.

我们有一个遗留系统,它使用了一些API,我猜这些API会被移除或删除.我们使用ant脚本(1.10.1)进行应用程序编译.

以下是构建我们的应用程序的部分:

  <target name="javac-setup" depends="flags, with.clover, jaxb-apply, flamingo.javac"/>

    <target name="javac" depends="javac-setup">
        <mkdir dir="${workmanager.dir.classes}"/>
        <javac destdir="${workmanager.dir.classes}" deprecation="on" debug="${javac.debug}" encoding="iso-8859-1" includeantruntime="false">
            <compilerarg line="-Xlint:static"/>
            <compilerarg line="-Xlint:unchecked"/>
            <compilerarg line="-Xlint:overrides"/>
            <compilerarg line="-Xmaxerrs 9999" />
            <compilerarg line="-Xmaxwarns 9999" />
            <compilerarg value="-Werror"/>
            <src path="${workmanager.dir.src}"/>
            <src path="${webservices.dir.java.src}"/>
            <patternset refid="java.sources"/>
            <classpath refid="classes.classpath"/>
        </javac>
    </target>
Run Code Online (Sandbox Code Playgroud)

在编译期间,在转移到Java 10之后,我得到的几个与Java Swing相关的错误(再次是旧的,但必须使用它).因为我还没有完全意识到Java 10中发生的所有更改,对我来说它看起来很像喜欢这个问题与模块化概念有关.虽然还在学习,但不确定.我知道你的建议,知道这些错误是否与模块化有关.还有任何建议或提示来解决这些问题?

以下是错误:

[javac] Compiling 3253 source files to C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\classes
    [javac] C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\src\com\osm\datamgmt\report\ui\AssignPosNumberToolbar.java:26: error: package com.sun.java.swing.plaf.windows is not visible
    [javac] import com.sun.java.swing.plaf.windows.WindowsButtonUI;
    [javac]                               ^
    [javac]   (package com.sun.java.swing.plaf.windows is declared in …
Run Code Online (Sandbox Code Playgroud)

java ant swing compiler-errors java-10

3
推荐指数
1
解决办法
2244
查看次数

从Epoch转换为millis到Java 10中的LocalDateTime转换为Java 8

我有一个应用程序,我使用毫秒自Epoch转换为LocalDateTime和返回,该应用程序在Java 8上运行良好,但我尝试更新到Java 10,并发现以下问题

这是Java 8中的输出

 ? magg@MacBook-Pro-de-Miguel ? ~/Desktop/CODE ? java TimeTest
2018-09-06T20:13:30.253
1536290010253
2018-09-06T20:13:30.253
 ? magg@MacBook-Pro-de-Miguel ? ~/Desktop/CODE ? java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

这是Java 10中的输出,如果你看到格式是6位数字,而不是像Java 8中的那样,这打破了从Epoch到LocalDateTime的毫秒转换

? magg@MacBook-Pro-de-Miguel ? ~/Desktop/CODE ? java TimeTest
2018-09-06T20:13:18.568414
1536289998568
2018-09-06T20:13:18.568
 ? magg@MacBook-Pro-de-Miguel ? ~/Desktop/CODE ? java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed …
Run Code Online (Sandbox Code Playgroud)

java date java-8 java-10 localdate

3
推荐指数
1
解决办法
515
查看次数

Maven Shade插件无法执行目标?

有问题的错误消息是

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.0:shade (default) on project myapp-core: Error creating shaded jar: null: IllegalArgumentException -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

mvn package该在myapp-core文件夹中。mvn cleanmvn compile做工精细。我的项目结构是

myapp/
    myapp-acceptance-tests/
    myapp-core/
        pom.xml
    pom.xml
Run Code Online (Sandbox Code Playgroud)

并且myapp/pom.xml

<groupId>com.myself.myapp</groupId>
<artifactId>myapp</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
    <module>myapp-core</module>
    <module>myapp-acceptance-tests</module>
</modules>

<properties>
    <maven.compiler.source>10</maven.compiler.source>
    <maven.compiler.target>10</maven.compiler.target>
</properties>

<dependencies>
    ...
</dependencies>
Run Code Online (Sandbox Code Playgroud)

并且myapp/myapp-core/pom.xml

<artifactId>myapp-core</artifactId>
<packaging>jar</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>myself.myapp.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>10</source>
                <target>10</target> …
Run Code Online (Sandbox Code Playgroud)

java maven maven-shade-plugin java-10

3
推荐指数
1
解决办法
3895
查看次数

Java 10中的Collectors.toUnmodifiableList vs Collections.unmodifiableList

根据doc,该方法Collections.unmodifiableList返回指定列表的不可修改视图.返回的列表是否真的无法修改?不可修改的观点是什么意思?

根据doc,该方法Collectors.toUnmodifiableList返回一个Collector,它将输入元素累积到遇到顺序的不可修改的List中.这里返回的列表真的无法修改吗?

注意:通过可修改,我的意思是可以使用set操作修改视图.我想了解它们之间的区别以及它们之间的关系?

java java-8 java-10

3
推荐指数
1
解决办法
465
查看次数