我有一个List<PathElement>我希望能够添加到场景图,或绘制到画布.第一个很简单,因为我可以创建一个Path节点并将其添加到场景中.第二个需要从PathElement's'到调用GraphicsContext.对于大多数事情来说,这是非常简单的,除了ArcTo和GraphicsContext.arcTo参数化不同.
ArcTo接受以下内容 ArcTo(double radiusX, double radiusY, double xAxisRotation, double x, double y, boolean largeArcFlag, boolean sweepFlag)
而GraphicsContext.arcTo接受arcTo(double x1, double y1, double x2, double y2, double radius).此外,GraphicsContext有arc接受arc(double centerX, double centerY, double radiusX, double radiusY, double startAngle, double length).
如何ArcTo使用可用的方法在画布上绘制GraphicsContext?
我正在使用Lucene 4.2并且正在实现结果分页.
IndexSearcher.searchAfter提供了一种实现"下一页"功能的有效方法,但实现"上一页"甚至"转到页面"功能的最佳方法是什么?没有IndexSearcher.searchBefore例子.
我正在考虑确定给定页面大小的页面总数,并保持一个ScoreDoc[]数组来跟踪ScoreDoc每个页面的"后" (该数组将在结果被分页时填充).这将允许我使用"最近" ScoreDoc的使用IndexSearcher.searchAfter(或空在最坏的情况下).
这有意义吗?有更好的方法吗?
fun test() {
class Test(val foo: ((Double, Double) -> Double)?)
val test = Test(null)
if(test.foo != null) test.foo(1.0, 2.0)
}
Run Code Online (Sandbox Code Playgroud)
上面的代码生成错误:
Kotlin:Reference有一个可空类型'((Double,Double) - > DoubleArray)?',使用显式'?.invoke()'来代替类似函数的调用.
如果我按照错误建议并将调用更改为test.foo?.invoke(1.0, 2.0),则代码编译但IntelliJ现在报告
对'((Double,Double) - > DoubleArray)类型的非null接收器进行不必要的安全调用
根据这个建议,我最终test.foo.invoke(1.0, 2.0)认为可以互换test.foo(1.0, 2.0); 为什么不是这里的情况?
当foo不是类成员时,事情就像我期望的那样:
fun test2() {
val foo: ((Double, Double) -> Double)? = null
if(foo != null) foo(1.0, 2.0)
}
Run Code Online (Sandbox Code Playgroud)