我能够使用Java语言做一些实验,令人惊讶的是我开始使用这行代码{{ }}.更多我已经注意到使用该代码结构,我可以使用该类的任何方法而无需为其创建对象变量.
例如:
class Sample {
public void hello() {
// Do something here.
}
}
class SampleTest {
public void testHello() {
new Sample {{ hello(); }};
}
// PSVM ...
}Run Code Online (Sandbox Code Playgroud)
问题是第8行的陈述所要求的概念/术语是什么?
我有这个String to String映射,并且我试图char作为键传递
Map<String, String> phone = new HashMap<String, String>() {{
put("2", "abc");
put("3", "def");
put("4", "ghi");
put("5", "jkl");
put("6", "mno");
put("7", "pqrs");
put("8", "tuv");
put("9", "wxyz");
}};
String letterList = phone.get('2'); //null
String letterList = phone.get(String.valueOf('2')); //it works
Run Code Online (Sandbox Code Playgroud)
为什么第一种情况不起作用?以我的理解,char可以隐式转换为字符串“ 2”,并且HashMap用于equals()比较键,以便它应该在map中检索键吗?
我想通过我的构造函数添加方法并在之后使用它:
RegularAxis lon = new RegularAxis(){
public String returnHello(){
return "hello";
}
};
lon.returnHello();
Run Code Online (Sandbox Code Playgroud)
我无法访问我的新方法。还有其他方法吗?
启动一个ArrayListby 的问题是什么:
new ArrayList<String>().add("something");
Run Code Online (Sandbox Code Playgroud)
为什么我们应该使用以下内容来启动ArrayList:
new ArrayList<String>() {{
add("something");
}};
Run Code Online (Sandbox Code Playgroud)