Java初始化对象 两个花括号{{}}
2020-08-07 本文已影响0人
xiaogp
双花括号里面就是可以直接调用其对象里面的内部方法来初始化
import java.util.*;
public class initTest {
public static void main(String[] args) {
mapTest();
listTest();
setTest();
classTest();
}
/*
初始化Map
*/
public static void mapTest() {
Map<String, String> map = new HashMap<String, String>() {{
put("a", "aa");
put("b", "bb");
put("c", "cc");
}};
System.out.println(map);
}
/*
初始化List
*/
public static void listTest() {
List<String> list = new ArrayList<String>() {{
add("a");
add("b");
add("c");
add("d");
}};
System.out.println(list);
}
/*
初始化Set
*/
public static void setTest() {
Set<String> set = new HashSet<String>() {{
add("a");
add("b");
add("a");
add("c");
}};
System.out.println(set);
}
public static void classTest() {
Person person = new Person() {{
setName("aaa");
setAge(13);
}};
System.out.println(person);
}
}
class Person {
String name;
int age;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}