小编Mar*_*ger的帖子

bash,find,exec和echo

find . \
  -name 'user_prefs' \
  -exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'
Run Code Online (Sandbox Code Playgroud)

我想将行添加whitelist_from basheer@hydrofitgroup.com到找到的所有文件中find,但我的命令不起作用.它只是创建文件"{}".

我用这个for命令?

谢谢!

bash command-line for-loop find

8
推荐指数
2
解决办法
1万
查看次数

关于在 JavaDoc 中对同一异常使用多个 @throws 标签的官方推荐/编码风格指南

我最近发现可以在 Javadoc 中对同一个异常使用多个@throws标签。

我的一位学生用它来记录他在《四子棋》中的一种方法:

/*
 * ...
 * @throws IllegalArgumentException if the number of rows or columns is invalid 
 * @throws IllegalArgumentException if one of the players has {@link Stone#None} as stone
 * @throws IllegalStateException if both players use the same stone color
 */
public void doSomething(...) { ... }
Run Code Online (Sandbox Code Playgroud)

现在我(和他)的问题是:对于是否使用单个@throws标签或“是否可以”为每个异常类型使用多个标签,是否有官方风格指南或一般建议?

java javadoc exception code-documentation throws

7
推荐指数
1
解决办法
297
查看次数

如何访问ScrollPane的Scrollbars

我正在尝试获取有关ScrollBar标准中包含的组件的一些信息ScrollPane.特别是我有兴趣阅读height横向Scrollbar.我怎么能参考呢?

java javafx javafx-2 javafx-8

6
推荐指数
3
解决办法
1万
查看次数

为什么Java对象中存在内部碎片,即使每个字段都是4字节对齐的?

介绍:

我使用JOL(Java对象布局)工具来分析Java对象的内部和外部碎片以用于研究目的.

在这样做时,我偶然发现了以下内容:

x@pc:~/Util$ java -jar jol-cli-0.9-full.jar internals sun.reflect.DelegatingClassLoader
# WARNING: Unable to attach Serviceability Agent. You can try again with escalated privileges. Two options: a) use -Djol.tryWithSudo=true to try with sudo; b) echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
# Running 64-bit HotSpot VM.
# Using compressed oop with 3-bit shift.
# Using compressed klass with 3-bit shift.
# WARNING | Compressed references base/shifts are guessed by the experiment!
# WARNING | Therefore, computed addresses are …
Run Code Online (Sandbox Code Playgroud)

java jvm object-layout jol

6
推荐指数
1
解决办法
245
查看次数

如何在Gradle多项目构建中配置每个Kotlin项目?

我有一个使用Gradle多项目构建的项目.一些子项目是用Java编写的,其他一些子项目是用Kotlin编写的.

我们有一个顶级build.gradle文件.该文件包含以下部分:

allprojects {
    plugins.withType(JavaPlugin) {
        // All the stuff that all Java sub-projects have in common
        ...
    }
    // All the stuff that all sub-projects have in common
    ...
}
Run Code Online (Sandbox Code Playgroud)

我们现在想介绍我们的Kotlin子项目的常用设置,但我找不到withType要使用的项目.

build.gradle我们Kotlin项目的文件始于

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.3.0"
} 
Run Code Online (Sandbox Code Playgroud)

但既不是withType(org.jetbrains.kotlin.jvm)也不行withType(KotlinProject).

我必须在那里使用什么类型?谢谢!

java build gradle kotlin build.gradle

6
推荐指数
1
解决办法
507
查看次数

私有顶层扩展函数与类内部私有扩展函数的区别

我们目前正在将我们的项目切换到 Kotlin,并遇到以下问题:

我们只需要在给定的类中使用某个扩展函数。因此,我们有两种可能性:(1)private在文件顶层声明扩展函数或(2)private在类内部声明扩展函数。

遵循MCVE

顶级示例(文件C1.kt):

private fun String.double() = this.repeat(2)
class C1 {
    init {
        println("init".double())
    }
}
Run Code Online (Sandbox Code Playgroud)

内部类示例(文件C2.kt):

class C2 {
    private fun String.double() = this.repeat(2)
    init {
        println("init".double())
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 这两种方法有什么区别,只是在C1.kt扩展函数String.double()中其他可能的文件成员(例如同一文件中的其他类)也可以看到?

  2. 由于我们希望实现“尽可能 kotlinic”的代码,我们想知道这两种方法中的哪一种是建议的。上面的例子有官方建议/风格指南吗?我认为声明扩展函数尽可能接近其预期用途被认为是一种很好的做法,因此在上面的例子中C2会建议结构?

extension-methods member kotlin extension-function toplevel

6
推荐指数
1
解决办法
1244
查看次数

将 maplist 与没有主体的 lambda 一起使用?

有一个充满数字的列表List,我想获得一个对的列表Pairs,其中每对的Pairs形式为<number>-0,即每个数字List后应跟随着-0

我想出了以下解决方案,使用maplistlambda:

List = [1,2,30], maplist([X,X-0]>>(!), List, Pairs).
Run Code Online (Sandbox Code Playgroud)

结果:Pairs = [1-0, 2-0, 30-0].

虽然这可行,但 lambda[X,X-0]>>(!)对我来说看起来很奇怪。我知道我也可以编写[X,Y]>>(Y=X-0)在主体中包含一些“有用”的内容,但我想知道我是否可以编写没有“空 lambda 主体”的第一个版本?或者有没有一种方法可以完全避免 lambda,而不引入新的谓词(我想将解决方案保留在一行)?谢谢!

syntax lambda prolog swi-prolog maplist

6
推荐指数
1
解决办法
177
查看次数

使用 d3.join 时是否可以不重新排序元素?

在 中d3,我们可以更改选择中元素的顺序,例如使用raise

然而,当我们重新绑定数据并使用 时join,该顺序将被丢弃。

enter当我们使用绑定数据的“旧方法”(使用和 )时,这种情况不会发生merge

请参阅下面的小提琴,您可以在其中单击一个圆圈(例如蓝色圆圈)将其置于前面。当您单击“重绘”时,使用 时,圆会恢复到原来的 z 顺序join,但使用enter和时则不会merge

我可以实现圆圈保持其 z 顺序并仍然使用吗join

const data = [{
  id: 1,
  v: 10,
  c: 'red'
}, {
  id: 2,
  v: 30,
  c: 'blue'
}, {
  id: 3,
  v: 60,
  c: 'green'
}]

let nDrawCall = 0

function redraw() {
  nDrawCall++
  //svg1 with old enter-merge pattern that works
  const circles = d3.select('#svg1')
    .selectAll('circle')
    .data(data, …
Run Code Online (Sandbox Code Playgroud)

javascript visualization data-visualization d3.js typescript

6
推荐指数
1
解决办法
145
查看次数

JavaFX的TreeTableView具有较差的节点扩展性能

我们从Swing迁移到JavaFX,并且还使用JavaFX交换了自定义Swing TreeTableView控件TreeTableView.

然而,我们在扩展节点时会遇到明显的延迟.

在此输入图像描述

通过VisualVM查看这个问题,我们发现大部分时间花费在Parent.scenesChanged()CssStyleHelper.createStyleHelper().然而,我们无法从中获得快速扩展的解决方案.

有没有其他人遇到过JavaFX的问题TreeTableView

节点的数量不应该是原因,在第一级(即,在根之下)有几百个节点,并且每个节点具有大约20个子节点.

附加信息:我们正在运行Ubuntu,openjfx版本(8u60-b27-4).

java javafx javafx-8 openjfx

5
推荐指数
0
解决办法
318
查看次数

如何使用 JavaParser 在同一行添加新语句

我知道JavaParser在 AST 上运行,但我很好奇是否可以在与另一条语句相同的行上添加新语句。让我举一个例子来说明我想要实现的目标。

输入示例X.java(不要介意“逻辑”):

public class X {
    public static void main(String[] args) {
        int a = 1;
        while(a < 100) {
            a *= 2;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在System.out.println("End of loop reached");每个循环体的末尾添加语句 - 但是,如果可能的话,我想在循环体中的最后一个语句旁边添加这个新语句。因此,结果应该如下所示:

public class X {
    public static void main(String[] args) {
        int a = 1;
        while(a < 100) {
            a *= 2; System.out.println("End of loop reached");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

目前我使用以下访问者(用 Kotlin 编写),只是为了了解 JavaParser。然而,这会导致为打印语句添加新行。关于如何指示 JavaParser 在同一行添加新节点有什么想法吗?

class WhileVisitor : VoidVisitorAdapter<Void>() …
Run Code Online (Sandbox Code Playgroud)

java abstract-syntax-tree visitor-pattern javaparser code-transformation

5
推荐指数
0
解决办法
544
查看次数