可能重复:
传递null时选择了哪个构造函数?
我最近在几天前的编码时遇到了这种好奇心,似乎无法弄清楚为什么会发生以下情况:
鉴于下面的课程
public class RandomObject{
public RandomObject(Object o){
System.out.println(1);
}
public RandomObject(String[] s){
System.out.println(2);
}
}
Run Code Online (Sandbox Code Playgroud)
进行调用时new RandomObject(null);
,输出始终2
与构造函数的创建顺序无关.为什么要null
引用字符串数组而不是对象?
我有使用Mesos和Marathon运行的docker图像(带入口点).这些映像需要在/ etc/hosts和/etc/resolv.conf中进行更改.当我通常运行这个时,我会做类似的事情:
docker run --add-host host:ip --dns-search url image
Run Code Online (Sandbox Code Playgroud)
但是在一个马拉松应用程序中(我将其设置为json主体以发送到马拉松),我不知道这些选项将被映射到什么.例如,-p
变成portMappings
了json体.有谁知道什么--add-host
和--dns-search
和潜在的其他选项会变成什么?
如果我运行一个dockerfile,我有一个像这样的命令
RUN curl -o file.txt http://X.X.X.X/path/to/file/file.txt
Run Code Online (Sandbox Code Playgroud)
构建工作,而如果我使用
ADD http://X.X.X.X/path/to/file/file.txt file.txt
Run Code Online (Sandbox Code Playgroud)
构建失败,它抱怨
Got HTTP status code >= 400: 503 Service Unavailable
Run Code Online (Sandbox Code Playgroud)
ADD有什么我不理解的吗?
编辑文件也可以通过docker主机访问.
我一直在 scala 2.10.4 环境中工作,但在编码时遇到了一个奇怪的错误,如下所示:
object TestTypes extends Enumeration {
type TestTypes = Value
val Test,
Blah,
Blah2 = Value
}
def printStuff(v: TestTypes.Value) = {
println(v)
}
val v = TestTypes(1)
printStuff(v)
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下:
<console>:81: error: type mismatch;
found : TestTypes.Value
required: TestTypes.Value
printStuff(v)
^
Run Code Online (Sandbox Code Playgroud)
但我真的无法弄清楚为什么会出现这个错误。我无法升级 Scala 版本(尽管我已经检查过并且此代码适用于 2.11.7)。有没有人知道为什么会发生这个错误,或者如果有办法解决它会更好吗?
docker ×2
constructor ×1
curl ×1
dockerfile ×1
enums ×1
hosts ×1
java ×1
json ×1
marathon ×1
mesos ×1
null ×1
scala-2.10 ×1