我刚开始探索Kotlin语言.我正在努力进行遗传,变异和副作用.
如果我宣布一个特质A与val x和覆盖x在AImpl它可以覆盖它var(见下面的代码).令人惊讶的是,该print()方法A受到重新分配的影响,x即使它x是一个值A.这是一个错误还是一个功能?
码:
trait A {
fun print() {
println("A.x = $x")
}
val x : Int;
}
class AImpl(x : Int) : A {
override var x = x; // seems like x can be overriden as `var`
}
fun main(args: Array<String>) {
val a = AImpl(2)
a.print() // A.x = 2
a.x = 3; // x can …Run Code Online (Sandbox Code Playgroud) 我有一个关于JavaFX 8 WebView及其滚动条的问题.
我想重新加载HTML文档并记住当前的垂直滚动条位置.不幸的是,每当我重新加载文档时,滚动条就会移动到其初始位置.如何强制滚动条记住它的位置?
我试图解决这个问题:
通过WebView#lookup(String id)(参见1),可以访问ScrollBarWebView实例的垂直和水平实例.这允许我保持当前滚动条值,即拇指位置通过ScrollBar#getValue().不幸的是,设置值via ScrollBar#setValue(double value)不会产生预期的效果.滚动条拇指位置保持不变.
此外,我怀疑JavaFX滚动条没有呈现.相反,似乎显示了具有类似样式的WebKit滚动条.至少通过Scenic View进行的简短场景图分析给了我这样的印象.
这是一个JavaFX错误吗?有没有办法实现理想的行为?
这是一个演示setValue()的示例程序- 问题:
import java.util.Set;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollBar;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**
* ScrollBar bug in JavaFX 8 WebView?
*
* @author Michael Hoffer <info@michaelhoffer.de>
*/
public class WebViewAndItsScrollBars extends Application {
@Override
public void start(Stage primaryStage) {
// …Run Code Online (Sandbox Code Playgroud)