检查 -->
我的模型看起来像这样。
@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) 我使用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 依赖项。如果没有其他工作,手动下载东西是我要做的最后一件事。
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) 假设我有以下类定义单个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 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无法实现的.
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 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) 我有一个应用程序,我使用毫秒自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) 有问题的错误消息是
[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 clean和mvn 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)