我有一个类User,只有两个字段:id,name
package test;
public class User {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在Main课堂上,我尝试用两种不同的方法初始化User对象:
package test;
/**
* @author lhuang
*/
public class Main {
public static void main(String[] args) {
User u = new User() {
{
setId(1l);
setName("LHuang");
}
};
System.out.println(u.getClass());
User u2 = new User();
u2.setId(1l);
u2.setName("LHuang");
System.out.println(u2.getClass());
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以得到输出
class test.Main$1
class test.User
Run Code Online (Sandbox Code Playgroud)
有趣的是为什么u类是Main的内部类类型?但实际上我仍然可以使用u.getId()和u.getName()方法.
您正在创建一个从此处扩展的匿名类User:
User u = new User() { //<-- this open bracket defines a new class
{
setId(1l);
setName("LHuang");
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |