Не удается разрешить метод 'access $ 000 ()' - PullRequest
5 голосов
/ 07 июня 2011

У меня нет доступа к исходному коду Java, я создал код Java из файлов JAR. Мне нужно изменить один из файлов Java, чтобы добавить некоторые дополнительные функции, он жалуется на один метод внутреннего класса

return Survey.access$000();

Он говорит, что не может разрешить метод 'access$000()' Что я должен сделать, чтобы избавиться от этой ошибки До сих пор я ничего не изменил после того, как перепроектировал файл jar. Рассматриваемый класс - Survey, и он имеет следующий внутренний класс

private static class SurveyPermissionCatalogFinder
/*     */     implements PermissionCatalogFinder
/*     */   {
/*     */     private static final long serialVersionUID = 1L;
/*     */     private static SurveyPermissionCatalogFinder one;
/*     */ 
/*     */     public PermissionCatalog getCatalog()
/*     */     {
/* 225 */       return Survey.access$000();
/*     */     }
/*     */     public static SurveyPermissionCatalogFinder getInstance() {
/* 228 */       if (one == null) {
/* 229 */         one = new SurveyPermissionCatalogFinder();
/*     */       }
/* 231 */       return one;
/*     */     }

1 Ответ

6 голосов
/ 07 июня 2011

Похоже, изначально была некоторая закрытая переменная, доступ к которой был во внутреннем классе.Не могу сказать, что вы должны с этим делать, за исключением того, что вы не всегда можете ожидать, что декомпилированные классы будут действительными исходными кодами Java .

Посмотрите вопрос ниже для объяснениязагадочный access$000() метод.

...