问题标签 [constructor-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 内部类的构造函数引用在运行时因 VerifyError 而失败
我正在使用 lambda 为内部类构造函数创建供应商ctx -> new SpectatorSwitcher(ctx)
。IntelliJ 建议我改为SpectatorSwitcher::new
改为。SpectatorSwitcher 是我正在使用的类的非静态内部类。建议的代码编译得很好(使用 maven),但我在执行时得到以下 VerifyError:
为什么 javac / maven 在编译时没有失败但仍然产生无效的字节码?
编辑:问题似乎比简单的调用复杂得多,这是重现它所需的代码:
java - 使用本地类时构造函数引用无效?
给定以下代码:
我的 IDE 没有给我任何错误。也就是说,直到我尝试构建项目并运行它。当我这样做时,它会给我一个编译器错误,如下所示:
现在,我认为,鉴于错误消息,如果 foo() 是静态的,则不会发生这种情况。非常正确,只有当 foo() 是一个实例方法时才会发生这种情况。只有当 LocalFoo 是实例方法中的本地类时,才会发生这种情况,并且只有在使用构造函数引用(即从不使用常规方法引用)时才会发生。
更重要的是,如果我将第 21 行更改为
编译器突然没有错误。
所以回顾一下。如果我尝试在实例方法中声明的本地类上使用构造函数引用,编译器会抱怨无法访问构造函数,对此我感到困惑。
如果有人可以阐明为什么会发生这种情况,将不胜感激。谢谢。
kotlin - Kotlin 中有构造函数引用吗?
在 Java 中,我们有Class::new
构造函数引用的语法。我知道,方法有可调用的引用,但是构造函数呢?对我来说,一个典型的用例是工厂。
java - Java 8 构造函数方法参考
我正在阅读 Java 8 书,它附带了一个我复制的示例:
实施者:
来电者:
如果调用此方法,则将以下内容打印到输出中:
一切都很好,但是如果我使用方法引用而不是perform message
打印方法!为什么会这样,我错过了什么吗?
如果我使用此代码:
或者这段代码:
这是打印的:
不打印异常消息或其他任何内容。我正在使用 Java 8 1.8.25 64 位。
更新
对于像我一样正在学习的读者来说,这是正确的运行代码。
我创建了一个调用者类。
因为我需要实现一个空方法“从 Action 功能接口执行”,我需要将它作为参数传递给类构造函数MethodReference
,所以我引用了“MethodReferenceCall 的构造函数,它是一个空构造函数”,我可以使用它。
java-8 - How do I use [TypeArguments] with a constructor reference in Java 8?
Section 15.13 of the Java Language Specification for Java 8 describes this form of the method reference syntax for creating a constructor reference:
For example:
That all works fine, but it seems that absolutely anything (excluding primitives) can be also supplied for the [TypeArguments] and everything still works:
Here's a silly example to prove the point:
A few questions arising:
[1] Since the String class doesn't even use generics, is it valid that the compiler allows the creation of that test2 constructor reference with those meaningless [TypeArguments]?
[2] What would be a meaningful example of using [TypeArguments] when creating a constructor reference?
[3] Under what conditions is it essential to specify [TypeArguments] when creating a constructor reference?
java - Java 8 可以动态实现接口以供方法参考吗?
我学习了 Java 8 的新特性。
我正在玩不同的例子,我发现了一个奇怪的行为:
这段代码编译成功,但我不知道它是如何工作的。
为什么Test::new
可以作为供应商接受?
供应商界面看起来很简单:
java - 默认方法中的自动构造函数匹配
我有一个PersonFactory
界面如下:
Person
班级:
我希望能够Person
像这样实例化我的 s:
有没有办法让 Java 编译器通过匹配的签名自动选择正确的构造函数PersonFactory.create()
?
generics - 如何将类型参数传递给泛型类构造函数引用?
假设以下代码:
我通过将 JavaFX 属性(SimpleIntegerProperty
, SimpleStringProperty
, ... 和SimpleObjectProperty<T>
)传递给通用类构造函数() -> Property<T>
参数遇到了这个问题,其中传递::SimpleIntegerProperty
没有问题,而::SimpleObjectProperty
像上面的示例代码一样失败。
是否可以在这里改进编译器或允许将类型参数传递给构造函数/函数引用?在这里使用构造函数引用而不是简单的 lambda 表达式是否有意义?它编译有什么不同吗?
android - 如何在类中创建泛型类型的对象
我有以下课程
如何TViewHolder
在我的类中创建类型的对象。