Синтетический класс не появляется в вашем коде: он составлен компилятором.
Например. Метод моста, составленный компилятором в Java, обычно является синтетическим.
public class Pair<T> {
private T first;
private T second;
public void setSecond(T newValue) {
second = newValue;
}
}
public class DateInterval extends Pair<String> {
public void setSecond(String second) {
System.out.println("OK sub");
}
public static void main(String[] args) throws NoSuchFieldException, SecurityException {
DateInterval interval = new DateInterval();
Pair pair = interval;
pair.setSecond("string1");
}
}
С помощью команды javap -verbose DateInterval
вы можете увидеть метод моста:
public void setSecond(java.lang.Object);
flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Это было составлено компилятором; он не отображается в вашем коде.