作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道当一个类有一个内部类时,这个类将被编译为两个类文件。今天我的代码如下
public class GenericDeserializer {
public static void main(String[] args) {
String cityPageLoadJson = "{\"count\":2,\"pageLoad\":[{\"id\":4,\"name\":\"HAN\"},{\"id\":8,\"name\":\"SGN\"}]}";
Type type = new TypeToken<GenericResult<City>>() {
}.getType();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
GenericResult<City> cityPageLoad = gson.fromJson(cityPageLoadJson, type);
for (City city : cityPageLoad.getPageLoad()) {
System.out.println(gson.toJson(city));
}
}
}
虽然上面没有内部类,但是java编译器仍然创建了两个类文件:
GenericDeserializer.class
GenericDeserializer$1.class
使用Java Decompiler
工具,我看到了第二个内容
package net.tuandn.training.lesson.gson;
import com.google.gson.reflect.TypeToken;
import net.tuandn.training.model.City;
import net.tuandn.training.model.GenericResult;
final class GenericDeserializer$1 extends TypeToken<GenericResult<City>>
{
}
有人可以解释一下为什么要创建这个类吗?
编译时什么时候创建多个类文件?
非常感谢!
最佳答案
由于您在以下语句中使用匿名
类,因此生成了两个类文件:
TypeToken<GenericResult<City>>() {
.....
}
每个匿名类文件都使用与容器类相同的名称,并附加 $1/$2 等。
关于java - 为什么编译时会创建两个类文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642422/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!