作为 Java SE 12 的一部分,引入了switch表达式,并且从 Java SE 14 开始,它们已经标准化。它们与switch陈述有何不同?
我是Java 8的新手,我遇到了Consumer java doc,它说:"预计消费者将通过副作用进行操作." 有人可以解释为什么这么说?
在我配置Eclipse Oxygen以使用Java 9之后,当我转到Source => Generate时,toString()我收到以下错误消息:
无法创建方法实现.
原因:模块:java.base不在其项目的构建路径上
生成constructor,getter和setter,hashcode()并且equals()工作正常,只有toString()不起作用.
如果我toString()手动输入方法,它可以正常工作.此外,如果我使用JRE 8创建项目,生成toString()工作正常.任何想法如何解决它?
需求和需要模块声明中的静态模块语句有什么区别?
例如:
module bar {
requires java.compiler;
requires static java.base;
}
Run Code Online (Sandbox Code Playgroud) 我发现了一个建议使用的答案
var list = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
我很惊讶在这里找到一个原始类型,我只是想知道:确实var使用<>"自动?
(与此同时,答案改为使用<String>,但我仍然对这里的"原则"感到好奇)
我看到其他的问题,比如这个,但它们都使用了钻石操作:
var list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
现在我只想知道:是否会var改变我们应该(不)使用原始类型的方式?或者这个建议<>只是遗漏了不好的做法?
我在Must submit topologies using the 'storm' client script so that StormSubmitter knows which jar to upload使用IDE向生产集群提交拓扑时遇到了问题,而如果我使用storm jar命令在命令行中执行,它就像天堂一样运行.我从githublink看过相同的例子.
对于提交拓扑,我使用这些行
conf.put(Config.NIMBUS_HOST, NIMBUS_NODE);
conf.put(Config.NIMBUS_THRIFT_PORT,6627);
conf.put(Config.STORM_ZOOKEEPER_PORT,2181);
conf.put(Config.STORM_ZOOKEEPER_SERVERS,ZOOKEEPER_ID);
conf.setNumWorkers(20);
conf.setMaxSpoutPending(5000);
StormSubmitter submitter = new StormSubmitter();
submitter.submitTopology("test", conf, builder.createTopology());
Run Code Online (Sandbox Code Playgroud)
如果这是正确的运行方法,请建议我?
在Java 9中,是否允许使用循环模块?如果不是,原因是什么?
module com.foo.bar {
requires com.foo.baz;
exports com.foo.bar.fizz;
}
module com.foo.baz {
requires com.foo.bar;
exports com.foo.baz.buzz;
}
Run Code Online (Sandbox Code Playgroud) java java-platform-module-system java-9 java-module module-info
在Java 8和之前的版本中,存在使用支持目录(java.endorsed.dirs)的机制,该目录是覆盖JDK内部实现的库的集合.
如何在Java-9中解决这个问题?在那里被删除的背书去了吗?
我对Gradle(和Java 9,说实话)相当新,我正在尝试使用Gradle构建一个简单的库项目,它是Java 9和Kotlin的混合体.更详细的说,Java中有一个接口,Kotlin中有一个实现; 我会在Kotlin做一切,但modules-info.java无论如何都是java,所以我决定这样做.
我正在构建IntelliJ Idea,外部定义了1.2.0 kotlin插件和gradle 4.3.1.
文件系统架构是:
+ src
+ main
+ java
+ some.package
- Roundabout.java [an interface]
- module-info.java
+ kotlin
+ some.package.impl
- RoundaboutImpl.kt [implementing the interface]
Run Code Online (Sandbox Code Playgroud)
module-info.java 是:
module some.package {
requires kotlin.stdlib;
exports some.package;
}
Run Code Online (Sandbox Code Playgroud)
并build.gradle是:
buildscript {
ext.kotlin_version = '1.2.0'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
group 'some.package'
version '1.0-PRE_ALPHA'
apply plugin: 'java-library'
apply plugin: 'kotlin'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
sourceCompatibility = …Run Code Online (Sandbox Code Playgroud) 我最近安装了jdk10.我正在做正常的代码,但它无法正常工作.
我在这里做错了吗?请参阅代码和异常堆栈跟踪.据我所知,这种行为应该没有理由.
import com.bean.College;
public class Student {
interface Club {
<T> T get(College<T> key);
}
private Club club;
Student() {
Object obj = club.get(new College<>() {});
}
}
Run Code Online (Sandbox Code Playgroud)
导入的College类是:
public class College<T> {
int id;
protected College() {
}
College(int id){
this.id=id;
}
}
Run Code Online (Sandbox Code Playgroud)
在编译时,javac编译器与以下堆栈跟踪崩溃:
java.lang.NullPointerException
at jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1233)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1634)
at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:396)
at jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef(Flow.java:987)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:956)
at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:396)
at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
at jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitBlock(Flow.java:995)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1020)
at jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:396)
at jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitMethodDef(Flow.java:962)
at …Run Code Online (Sandbox Code Playgroud) java ×10
java-9 ×6
java-10 ×2
java-module ×2
module-info ×2
apache-storm ×1
consumer ×1
eclipse ×1
endorsed ×1
generics ×1
gradle ×1
java-14 ×1
java-8 ×1
java-platform-module-system ×1
javac ×1
kotlin ×1
tostring ×1
var ×1