小编zak*_*mck的帖子

wget不再说英语了

突然之间,我的wget安装开始用意大利语与我交谈(当我做 - 帮助或其他交互时).我能理解它,但我用英语设置了一切,我宁愿保留这种语言.知道发生了什么.

我在macOS 10.13.4下,我已经通过Homebrew安装了1.19.5.

只有几个管理员用户才会出现此问题,当我在常规用户下运行时,它会一直说英语.

locale 输出似乎很好.

wget

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

具有复杂类型的Python枚举

我是Python的新手,我想知道我是否可以构建具有复杂结构的枚举,而不仅仅是原始类型.例如(在伪代码中):

Point::Enum
  x, y
  constructor ( x, y ) {
    ...
  }

  bottom_left = Point ( 0, 0 )
  top_left = Point ( 0, 100 )
  top_right = Point ( 100, 100 )
  bottom_right = Point ( 100, 0 )
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只能找到提到字符串或整数的枚举的Python文档.

python enums complextype

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

类路径中的远程 jars

抱歉,也许这个问题太愚蠢或已经回答了,但我找不到。

我想知道是否有一些已知的 Java 类加载器能够接受类路径中的远程文件,即像 CLASSPATH="http://somewhere.net/library.jar:..." 这样的条目。

请注意,我不是在谈论小程序或 Java Web Start。考虑一个可以使用不同后端(例如 MySQL、Oracle)的应用程序,我想根据用户的后端偏好在 shell 脚本中准备类路径,并让类加载器下载所需的jar(本例中的 jdbc 驱动程序)来自分发服务器。我也不是在谈论 Maven(用户只是获得二进制分发版,我不想强​​迫他们从源代码构建他们需要的东西)。

java remoteobject classpath classloader

5
推荐指数
1
解决办法
4496
查看次数

Eclipse, change exception variable name in auto-generated code

This is similar to Change unhandled exception auto-generated catch code in Eclipse?

这是关于更改 Eclipse 为函数 'sorround with try/catch block' 生成的代码。

就我而言,我想更改用于此类代码中的异常的变量名称(模板中 ${exception_var} 引用的变量名称)。我不喜欢“e”,因为有时它会与已定义的变量发生冲突。ex并且try ( ex ) {...}会更好。

java eclipse

5
推荐指数
1
解决办法
685
查看次数

将 Java8 流数组转换为元组流

假设我有一个 Java 8 流数组:Stream<T>[] streams,我想创建一个 Stream,其中新流的每个元素都是一个数组,由从每个初始基本流中选取一个元素组成(假设它们都是连续的) )。

例如,如果我有:

  streams [ 0 ] returning: ( "A", "B", "C" ), 
  streams [ 1 ] returning ( "X", "Y", "Z" ) 
  and streams [ 2 ] as ( "0", "1", "2" )
Run Code Online (Sandbox Code Playgroud)

我想要一个返回的流

  ( { "A", "X", "0" }, { "B", "Y", "1" }, { "C", "Z", "2" } )
Run Code Online (Sandbox Code Playgroud)

是否有一些代码已经实现了这一点?我有一个如何去做的想法,这将是对 case的概括,但我想知道是否已经存在可重用的东西。

编辑:对不起,我意识到我需要澄清一下:

  • 我不想创建整个矩阵,我想要一个每次动态返回一行的流(首先是 A/X/0,然后是 B/Y/1 等),而不必占用所有行的内存提前。我对基本流的大小做出合理的假设很好(例如,取最小值,一旦有没有更多元素要返回的流就停止)。

  • 我知道这可以通过首先将基本流转换为迭代器,然后创建一个新的迭代器来实现,其中 next() 从每个下划线迭代器中选择一个元素并返回一个新行。这就是我上面链接的配对示例所做的,我可以自己实现它,在这里我试图了解它是否已经在某个库中完成(我知道 JDK 没有这样的功能)。

java-8 java-stream

5
推荐指数
1
解决办法
3426
查看次数

Future 和 ExecutorService,如何知道取消的任务何时终止?

假设我有一些代码使用 an 启动任务ExecutorService,然后调用者通过方法Future返回的submit()方式取消它:

execService = Executors.newSingleThreadExecutor ();
Future<String> result = execService.submit ( () -> {
  for ( ... ) {
    if ( Thread.interrupted() ) break;
    // Stuff that takes a while
  }
  return "result";
});
...
result.cancel ( true );
// I'm not sure the corresponding thread/task has finished and the call() method 
// above returned
// result.isDone() is immediately true. result.get() throws CancellationException
Run Code Online (Sandbox Code Playgroud)

因此,我可以取消后台任务并使执行程序准备好重新启动。但是,在被中断的任务完成中断并且相应的方法返回之前,我不能做后者。

请注意,在上面的代码中,主流程在此之后直接返回result.cancel()result.isCancelled()在此之后为真,同时,并行任务可能还需要一段时间才能Thread.interrupted()再次检查并终止。在继续主线程之前,我需要确保副任务完全完成。

此外,请注意,单线程执行器的使用是偶然的,除了这个简单的例子,我想解决只有一个并行线程的情况和运行多个线程的情况的问题。

确定这一点的最佳方法是什么? …

java multithreading

5
推荐指数
1
解决办法
619
查看次数

跟踪"隐藏"异常

我正在检查我的程序的输出,我不时会看到像"java.lang.NullPointerException"这样的消息,而不是别的.因为这不是来自我的代码,我很确定,有一些第三方库,其中一些混蛋做了类似的东西:catch(ex){println ex.getMessage()}.

有没有办法重新启用堆栈跟踪报告并查看问题发生的位置?通过调试器+逐步执行来实现这一点并不容易,因为当我在大量输入数据上运行程序时问题是随机发生的,而如果我尝试重新运行,则无法重现它看起来很内疚的数据切片.

提前致谢!

java debugging exception

4
推荐指数
1
解决办法
1105
查看次数

Java 8中的方法引用:是否支持重载?

有没有办法在Java 8中引用一组方法,它们的重载方式会改变它们的签名?

更确切地说,我希望这段代码能够工作:

public class OverloadingMethodRef
{
    public static void foo ( int x ) {
        System.out.println ( "An integer: " + x );
    }

    public static void foo ( String x ) {
        System.out.println ( "A String: " + x );
    }

    /**
     * I want it to work without this
     */
//  public static void foo ( Object x ) {
//      if ( x instanceof Integer ) foo ( (int) x ); else foo ( ( String …
Run Code Online (Sandbox Code Playgroud)

lambda java-8 method-reference

4
推荐指数
1
解决办法
1772
查看次数

如何在 Java 中定义和调用内联 lambda 表达式

我想做这样的事情:

{ param -> if ( <condition over param> ) process ( param ) } ( provider () );
Run Code Online (Sandbox Code Playgroud)

即, param 是一个方法返回的值(比方说,它需要很长时间才能运行,所以我只想调用它一次)并且我只想在它满足条件时传递这样的值。

替代方案是:

Param param = provider(); if ( <cond> ) process ( param );
Run Code Online (Sandbox Code Playgroud)

但是基于 lambda 的版本,如果我能让它工作的话,会更短。上面的代码不能用 Java 编译,我不知道我在想什么是可能的,以及如何。

lambda java-8

3
推荐指数
2
解决办法
6000
查看次数

如何使用 Cypher/Neo4J 获取所有节点或给定标签的所有属性键?

Neo4j 最近推出了call db.labels();,它可以生成数据库中使用的所有标签,大概不需要进行全面扫描。

属性键是否有类似的东西,即一些返回数据库中使用的所有键的指令,无论节点如何?标签上是否有参数化的东西,即返回至少一个具有给定标签的节点中使用的所有键?

同样,我知道如何使用完整扫描进行任一查询,但恐怕它们效率不高。我知道这样的函数必须是 Web 浏览器用来在左列上显示所有属性键的函数。

neo4j cypher

3
推荐指数
2
解决办法
2235
查看次数