我知道,當一個類有一個內部類,那麼這個類將被編譯爲兩個類文件。今天我的代碼如下爲什麼在編譯時創建兩個類文件?
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>>
{
}
有沒有人請解釋爲什麼創建這個類?
什麼時候在編譯時創建多個類文件?
非常感謝!
謝謝你的答案!第二個問題呢?請讓我知道所有情況! –
在我的回答中更新。 –
@RohitJain對不起,我還想知道,如果類沒有內部類,包括內部匿名類,有可能在編譯時生成多個類文件嗎?你明白我說的嗎?對不起我的英語不好!!! –