У меня есть класс, который говорит ClassX с перечислением. как такОшибки при оценке ClassName.EnumName
public class ClassX{
public enum XType {
E_1, E_2, E_3, E_TC, UN_KNOWN, N_ONE;
}
}
В методе (methodx) в другом классе я имею в виду перечисление назначаемый и его другой переменной следующим образом:
public class AnotherClass{
public class NestedClass {
// some member variables
public NestedClass(String x, CustomClass y) {
this.m1 = x;
this.m2 = y;
this.b1 = false;
this.b2 = false;
}
}
public SomeType methodx() {
XType xt = null;
try {
// print log stmt1
xt = XType.E_TC;
// print log stmt2
}
catch(Exception e) {
// print log stmt3
}
}
}
Проблема заключается в том, что я получаю журнал stmt1 в журнале. Но не получайте ничего после этого метода methodx().
Я потратил часы, пытаясь понять, что случилось. Журналы не печатались, и не было никаких исключений, брошенных/пойманных. Затем я подключил отладчик. Поместите контрольные точки непосредственно перед назначением. Когда точка останова была удалена, я добавил XType.E_TC в список наблюдения. К моему удивлению, он сказал <Errors Evaluating>
. Я по-прежнему продолжал свой шаг, и код прыгнул в блок конструктора блока подкласса над методом methodx()!
Это не имеет смысла для меня, поскольку классы правильно скомпилированы и классы загружаются правильно. Я проверил XType, выполнив «javap» отдельно, и нет ошибки.
Вы что-то видели раньше? Как это исправить? Почему такое происходит в первую очередь? Я имею в виду, я могу понять, если файл .class ClassX частично построен и не имеет определения для XType, это правдоподобно. Но определение класса и перечисление корректно компилируются в .class. как уже упоминалось выше, я проверил его с помощью команды javap.
Любая помощь и указатели очень ценятся!
Поведение, которое вы описываете, чрезвычайно странно. Возможно, у вас есть один или несколько файлов устаревшего класса - вы можете исправить это, выполнив полную перестройку своего проекта. Однако, если вы хотите получить какую-либо конкретную помощь от нас, вам нужно будет опубликовать MCVE. –
Джон, я уверен, если я сделаю вышеприведенный образец в компилируемое состояние, я НЕ ПОЛУЧАЮТ проблему, которую я опубликовал. Это будет очень простая функциональность Java, которая будет нарушена. Мне нужно знать возможные причины и любые указатели на инструменты или процессы, которые могут помочь мне изолировать проблему. Я считаю, что решение будет простым, как только будет выявлена первопричина. –
Пожалуйста, уточните в своем вопросе. Более конкретно. Сделайте свой вопрос короче, насколько это возможно. –