在Java 8中,新包java.util.function包含许多功能接口.该软件包的文档(http://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html)对"函数形状"进行了多次引用:
我之前从未听说过"函数形状"这个术语,除了上面的文档之外,我几乎找不到它的引用,但由于这是Oracle关于函数接口的正式文档,我想了解它.
任何人都可以提供"功能形状"的定义,并发明一个例子吗?它是计算机科学中的通用术语,还是仅与Java 8相关?函数形状如何与函数描述符相关(如(T) - > Predicate <T>接口的布尔值)?
更新 Brian Goetz的以下两条评论回答了我在这篇文章中提出的问题.
Java 11 随TLSv1.3支持发布,默认使用。
它在 HTTPS 和 SSL 套接字的上下文中工作正常,但似乎在使用时SSLEngine由于TLSv1.3行为的变化而存在额外的障碍。
因此,通过NIOusing有一个强大的通信实现,SSLEngine当TLSv1.3启用时不再起作用。没有明显的错误,以异常或 SSL 错误的形式,两个节点只会来回发送 wrap/unwrap 消息并最终超时。
我对使用 TLSv1.2 的 SSLEngine 和使用 TLSv1.3 的 SSLEngine 之间的行为变化的确切列表感兴趣,如果可能的话,还有它们之间的迁移清单。不幸的是,Java 11 的 SSLEngine javadocs 没有这些信息——Java 11 中没有新方法,也没有对 TLSv1.3 的引用。
我想在下拉<select>列表上添加事件触发器。示例(jsFiddle):
$( document ).ready(function() {
$('.lorem').click(function() {
alert('ipsum');
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option class="lorem">1</option>
<option class="lorem">2</option>
</select>Run Code Online (Sandbox Code Playgroud)
使用Firefox,当我单击它时,它会正常触发。但是在webkit(Chrome / Safari等)上,它不起作用。为什么?
我目前正在尝试创建一个基本的Java项目。出现的第一个选项是“ Java with Maven”,我已经使用过,但是没有给我所需的“创建主类”选项。
我正在使用在Windows 10 x64上运行的Apache Netbeans IDE 11.0。我花了一整天的时间,更新并安装了我发现的最新JDK版本,但仍然无法正常工作。
我也已经阅读了此答案,但是它不起作用: 无法在Netbeans 8.2上创建项目
这是我得到的图像:
任何帮助表示赞赏,谢谢。
我有以下指定的行为。
interface ValueEditorPopupView<T> {
void setValue(T value);
void setApplyEnabled();
}
abstract class ValueEditorPopup<T> implements ValueEditorPopupView<T> {
@Override
public void setApplyEnabled() {
System.out.println("In ValueEditorPopup.setApplyEnabled()");
}
}
class ListEditorTextField {
private final ValueEditorPopup<String> popup;
ListEditorTextField() {
popup = new ValueEditorPopup<>() {
@Override
public void setValue(String value) {
System.out.println("In Anonymous Class impl setValue()");
}
// When I add a method that is NOT defined in the abstract class/interface
// I get an error for using the diamond operator in the class declaration above …Run Code Online (Sandbox Code Playgroud) 以下是 Java 20 中的错误还是我遗漏了什么?如果您编译/运行以下程序,您将获得预期的打印输出。但是,如果您取消注释开关中的单行:
import static java.lang.System.*;
public class Main {
record Point(int x, int y, Color color){}
enum Color {RED, BLUE, YELLOW}
public static void main(String[] args) {
testSwitch(new Point(10,20,Color.BLUE));
testSwitch(new Point(10,20,Color.RED));
testSwitch("vbjhjbhbjhbj");
testSwitch(1.012);
testSwitch(Color.YELLOW);
}
static void testSwitch(Object o){
switch(o){
case null -> out.println("Null");
case Color c -> out.println("Color: "+c);
//case Point(var x, var y, Color c) when c == Color.RED -> out.printf("Red point x=%d, y=%d\n",x,y);
case Point(var x, var y, var color) -> out.printf("Point x=%d, y=%d, …Run Code Online (Sandbox Code Playgroud) 我创建了一个带有两个类的普通 Java 9 Maven 应用程序,以使用 JSON-B 测试 JSON 的序列化和反序列化。这是代码:
package com.jsonbdemos;
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
import javax.json.bind.JsonbConfig;
public class App {
public static void main(String[] args) {
Jsonb jsonb = JsonbBuilder.create(new JsonbConfig());
String jsonData = "{\"creationDate\":\"2018-01-05\"}";
// Create Widget object from JSON string.
Widget widget = jsonb.fromJson(jsonData, Widget.class);
System.out.println("JSON => object: " + widget.toString());
// Serialize Widget object to JSON string.
String jsonFromObject = jsonb.toJson(widget);
System.out.println("object => JSON: " + jsonFromObject);
}
}
package com.jsonbdemos;
import java.time.LocalDate;
public class Widget …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了 Netbeans 12.0。当我开始我的第一个项目时,我在创建一个新的 Java 类后收到了一条意外的错误消息。关于我如何处理它的任何建议?
这是消息:
java.lang.IllegalAccessError: superclass access check failed: class org.netbeans.lib.nbjavac.services.CancelAbort (in unnamed module @0x439ece0a) cannot access class com.sun.tools.javac.util.Abort (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x439ece0a
Run Code Online (Sandbox Code Playgroud)
这是我的系统信息:
Product Version = Apache NetBeans IDE 12.0
Operating System = Windows 7 version 6.1 running on amd64
Java; VM; Vendor = 16.0.1; Java HotSpot(TM) 64-Bit Server VM 16.0.1+9-24; Oracle Corporation
Runtime:Java(TM) SE Runtime Environment 16.0.1+9-24
Java Home:c:\program files\java\jdk-16.0.1
System Locale Encoding: pt_BR (nb); Cp1252 …Run Code Online (Sandbox Code Playgroud) 将 Netbeans 从 12.6 升级到 13 后,Netbeans 无法启动。当我从命令行启动它时,我收到以下消息:
java.lang.IllegalStateException: Missing hosting module org.netbeans.libs.javacimpl for fragment org.netbeans.modules.nbjavac.impl
at org.netbeans.ModuleManager.refineClassLoader(ModuleManager.java:909)
at org.netbeans.StandardModule.classLoaderUp(StandardModule.java:527)
at org.netbeans.ModuleManager.enable(ModuleManager.java:1330)
at org.netbeans.ModuleManager.enable(ModuleManager.java:1254)
at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:298)
at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
at org.netbeans.core.startup.Main.start(Main.java:282)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
at java.base/java.lang.Thread.run(Thread.java:829)
Run Code Online (Sandbox Code Playgroud)
什么原因?我该如何修复它?
我正在使用 React Native 并尝试创建调试构建,或者尝试使用“react-native run-anroid”命令在模拟器中加载构建。我收到以下错误:
VM 初始化期间发生错误无法为 2097152KB 对象堆保留足够的空间 Java HotSpot(TM) 客户端 VM 警告:忽略选项 MaxPermSize=512m;8.0 中删除了支持
请参阅下面的屏幕截图:
我该如何解决这个错误?
java ×6
netbeans ×3
eventtrigger ×1
generics ×1
java-11 ×1
java-16 ×1
java-20 ×1
java-8 ×1
javascript ×1
jquery ×1
json ×1
jsonb-api ×1
lambda ×1
maven ×1
netbeans-11 ×1
netbeans-12 ×1
netbeans-13 ×1
nio ×1
react-native ×1
sslengine ×1
tls1.3 ×1
webkit ×1
windows-10 ×1