@artemfisher

Почему рефлексия выводит для конструктора перечисления больше параметров, чем по факту?

Есть класс перечисления
public enum Cities {
	
Moscow(45), Novosibirsk(50);
	
private int regionCode;
	
Cities(int regionCode)
{
	this.regionCode = regionCode;		
}
}


Вывожу его конструктор через рефлексию
Class<?> clazz = Cities.class;		
				
for(var c: clazz.getDeclaredConstructors())
{
	System.out.println(c.toGenericString());			
}


выводит:
private mainPackage.Cities(java.lang.String,int,int)

Почему параметров 3?
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ответы на вопрос 1
Видимо ты забыл сохранить изменения в файле, тк этот код выдаёт как и ожидалось:
private Cities(int)
https://java.godbolt.org/z/81xfr3fa4

enum Cities {

  Moscow(45),
  Novosibirsk(50);
	
  private int regionCode;
	
  Cities(int regionCode)
  {
	this.regionCode = regionCode;		
  }
}

class Main {

    public static void main(String[] args) {
        Class<?> clazz = Cities.class;		
				
        for(var c: clazz.getDeclaredConstructors())
        {
	        System.out.println(c.toGenericString());			
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы