小编Not*_*bug的帖子

Lambdas:局部变量需要final,实例变量不需要

在lambda中,局部变量需要是final,但实例变量不需要.为什么这样?

java lambda final java-8

68
推荐指数
8
解决办法
7万
查看次数

是没有catch块的finally块是一个java反模式吗?

我在解决一些看起来像这样的代码时遇到了非常痛苦的故障排除经验:

try {
   doSomeStuff()
   doMore()
} finally {
   doSomeOtherStuff()
}
Run Code Online (Sandbox Code Playgroud)

这个问题很难解决,因为doSomeStuff()引发了异常,这又导致doSomeOtherStuff()也抛出异常.第二个异常(由finally块抛出)被抛到我的代码中,但它没有第一个异常的句柄(从doSomeStuff()抛出),这是问题的真正根本原因.

如果代码说了这个,那么问题就很明显了:

try {
    doSomeStuff()
    doMore()
} catch (Exception e) {
    log.error(e);
} finally {
   doSomeOtherStuff()
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:

是没有任何catch块使用的finally块是一个众所周知的java反模式?(这显然是一个不太明显的子类,显然是众所周知的反模式"不要狼吞虎咽的例外!")

c# c++ java exception try-catch-finally

45
推荐指数
5
解决办法
2万
查看次数

在Java 8中使用两个具有相同签名的默认方法实现两个接口

假设我有两个接口:

public interface I1
{
    default String getGreeting() {
        return "Good Morning!";
    }
}

public interface I2
{
    default String getGreeting() {
        return "Good Afternoon!";
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我想实现它们,将使用什么实现?

public class C1 implements I1, I2
{
    public static void main(String[] args)
    {
        System.out.println(new C1().getGreeting());
    }
}
Run Code Online (Sandbox Code Playgroud)

java interface java-8

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

margin-left:auto和margin-right:auto不在输入上工作

我有一个表单中的输入,我试图在中心对齐.通常margin-left:automargin-right: auto不能当响应display: block不加入CSS.我已经添加display: block到我的CSS但仍然没有按照我的意愿显示.

我已经制作了一个更容易理解的JSFiddle:http://jsfiddle.net/XnKDQ/97/

html css html5

41
推荐指数
3
解决办法
7万
查看次数

为什么Java编译器允许通过null对象进行静态变量访问?

我指着一些技巧并遇到了这个.在以下代码中:

public class TestClass1 {

    static int a = 10;

    public static void main(String ar[]){
        TestClass1 t1 = null ;
        System.out.println(t1.a); // At this line
    }
}
Run Code Online (Sandbox Code Playgroud)

t1对象是null.为什么这段代码不抛NullPointerException

我知道这不是访问static变量的正确方法,但问题是关于NullPointerException.

java static javac nullpointerexception

27
推荐指数
2
解决办法
4810
查看次数

while循环需要显式条件,for循环没有,为什么?

在C++中,允许在for循环中具有空条件,例如在for (;;)或中for (int x = 0;; ++x).但你做不到while ().

当在for循环中省略条件时,假定条件为true(因此循环永远循环).为什么这不是while循环的情况,也就是说,背后的论点是什么,不让它while ()成为别名while (true)

c++ syntax loops

22
推荐指数
3
解决办法
1494
查看次数

java.awt.Desktop.getDesktop()不支持的平台

从Java 6开始,有一个类java.awt.Desktop.有一些不错的方法,但所有平台都不支持该类.方法java.awt.Desktop.getDesktop()抛出一个

java.lang.UnsupportedOperationException:当前平台不支持Desktop API

在某些平台上.或者方法java.awt.Desktop.isDesktopSupported()返回false.

我知道它适用于Windows XP,Windows 2003和Windows Vista.问题是它不支持哪个平台?

java desktop cross-platform

20
推荐指数
1
解决办法
9729
查看次数

如何将List <String>列表转换为csv字符串

我有一个List字符串.是否有Java便捷方法将其转换ListCSV String?所以"test1,test2,test3"是List 3 String元素的转换结果,其中包含"test1""test2""test3"

我可以自己编写方法来转换,String但也许这已经由API实现了?

java csv string

20
推荐指数
6
解决办法
4万
查看次数

为什么将数据写入磁盘的速度和保存在内存中一样快?

我有以下10000000x2矩阵:

0        0
1        1
2        2
..       ..
10000000 10000000
Run Code Online (Sandbox Code Playgroud)

现在我想将这个矩阵保存到int[][]数组:

import com.google.common.base.Stopwatch;

static void memory(int size) throws Exception {
    System.out.println("Memory");

    Stopwatch s = Stopwatch.createStarted();

    int[][] l = new int[size][2];
    for (int i = 0; i < size; i++) {
        l[i][0] = i;
        l[i][1] = i;
    }

    System.out.println("Keeping " + size + " rows in-memory: " + s.stop());
}

public static void main(String[] args) throws Exception {
    int size = 10000000;
    memory(size);
    memory(size);
    memory(size);
    memory(size);
    memory(size);
} …
Run Code Online (Sandbox Code Playgroud)

java io

18
推荐指数
1
解决办法
2715
查看次数

如何将文件从SSH远程主机复制到Jenkins服务器

我们使用Jenkins服务器进行日常构建过程,并通过SSH在远程主机上执行一些bash脚本.此脚本在远程主机上生成html日志文件.

我们使用Copy to slave插件来复制从机上的文件,并通过ssh插件发布来管理构建过程中的SSH会话.

现在问题是,我们想要将一些文件(Scripts的日志文件)从远程ssh主机复制到Jenkins Server.哪个是可能的,更好的选择相同(插件会更好,如果有的话).

编辑:

sshpass是一个选项,但寻找任何插件或更好的方式来完成这项工作.

ssh file jenkins jenkins-plugins

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