在lambda中,局部变量需要是final,但实例变量不需要.为什么这样?
我在解决一些看起来像这样的代码时遇到了非常痛苦的故障排除经验:
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反模式?(这显然是一个不太明显的子类,显然是众所周知的反模式"不要狼吞虎咽的例外!")
假设我有两个接口:
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) 我有一个表单中的输入,我试图在中心对齐.通常margin-left:auto并margin-right: auto不能当响应display: block不加入CSS.我已经添加display: block到我的CSS但仍然没有按照我的意愿显示.
我已经制作了一个更容易理解的JSFiddle:http://jsfiddle.net/XnKDQ/97/
我指着一些技巧并遇到了这个.在以下代码中:
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.
在C++中,允许在for循环中具有空条件,例如在for (;;)或中for (int x = 0;; ++x).但你做不到while ().
当在for循环中省略条件时,假定条件为true(因此循环永远循环).为什么这不是while循环的情况,也就是说,背后的论点是什么,不让它while ()成为别名while (true)?
从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.问题是它不支持哪个平台?
我有一个List的字符串.是否有Java便捷方法将其转换List为CSV String?所以"test1,test2,test3"是List 3 String元素的转换结果,其中包含"test1""test2""test3"
我可以自己编写方法来转换,String但也许这已经由API实现了?
我有以下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) 我们使用Jenkins服务器进行日常构建过程,并通过SSH在远程主机上执行一些bash脚本.此脚本在远程主机上生成html日志文件.
我们使用Copy to slave插件来复制从机上的文件,并通过ssh插件发布来管理构建过程中的SSH会话.
现在问题是,我们想要将一些文件(Scripts的日志文件)从远程ssh主机复制到Jenkins Server.哪个是可能的,更好的选择相同(插件会更好,如果有的话).
编辑:
sshpass是一个选项,但寻找任何插件或更好的方式来完成这项工作.