Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 15.09.2019, 17:09   #1
BLACK_RAIN
Участник клуба
 
Регистрация: 13.02.2012
Сообщений: 612
Репутация: 101
По умолчанию java перепутанные пакеты/классы/переменные

Здравствуйте.
Имеется довольно большой проект (не мой), где почти все пакеты, классы, методы и переменные называются буквами английского алфавита.
Например: есть пакет com.a.a. В нем класс a.java. В нем переменные float a; float b; и методы:
Код:
void a(){}

int b(){}

float c(int a; float b, string c){}
Есть и другие пакеты: com.a.b, com.a.c, com.b.a и т.д. и в каждом из них классы называются a.java, b.java и т.д. Их методы могут обращаться к методам из классов в других пакетах.
Разумеется, это приводит к огромному количеству ошибок и проект не компилируется.
Есть ли способ исправить всё автоматически? Или только самому разбираться и вручную переименовывать?

Последний раз редактировалось BLACK_RAIN; 15.09.2019 в 17:22.
BLACK_RAIN вне форума   Ответить с цитированием
Старый 15.09.2019, 23:57   #2
Streletz
Профессионал
 
Регистрация: 03.01.2014
Сообщений: 2,675
Репутация: 1095
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Есть ли способ исправить всё автоматически? Или только самому разбираться и вручную переименовывать?
В современных IDE есть функции для автоматизированного рефакторинга, в т.ч. переименование. Но, они не избавят Вас от необходимости разбираться в назначении классов и т.д.
Streletz вне форума   Ответить с цитированием
Старый 16.09.2019, 05:15   #3
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,496
Репутация: 1038
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
почти все пакеты, классы, методы и переменные называются буквами английского алфавита.
Думаю, это не единственная проблема. Наверняка некоторые места криво декомпилировались
Black Fregat вне форума   Ответить с цитированием
Старый 16.09.2019, 08:10   #4
BLACK_RAIN
Участник клуба
 
Регистрация: 13.02.2012
Сообщений: 612
Репутация: 101
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Наверняка некоторые места криво декомпилировались
например как криво?
BLACK_RAIN вне форума   Ответить с цитированием
Старый 16.09.2019, 08:47   #5
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,496
Репутация: 1038
По умолчанию

Обфускация имён сама по себе не должна мешать компиляции проекта
Black Fregat вне форума   Ответить с цитированием
Старый 16.09.2019, 09:21   #6
BLACK_RAIN
Участник клуба
 
Регистрация: 13.02.2012
Сообщений: 612
Репутация: 101
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Обфускация имён сама по себе не должна мешать компиляции проекта
Даже если имена классов совпадают с именами пакетов?
А как же ошибка package <name> clashes with class of same name?

Последний раз редактировалось BLACK_RAIN; 16.09.2019 в 10:41.
BLACK_RAIN вне форума   Ответить с цитированием
Старый 16.09.2019, 13:52   #7
BLACK_RAIN
Участник клуба
 
Регистрация: 13.02.2012
Сообщений: 612
Репутация: 101
По умолчанию

Удалось таки запустить проект. Оказалось не так сложно. Только при декомпиляции почему-то потерялась функция main(String[] args); и еще пара строчек побилось.
Цитата:
Сообщение от Streletz Посмотреть сообщение
есть функции для автоматизированного рефакторинга, в т.ч. переименование
Насколько я понял, при переименовании пакета референсы на него автоматически не переименовываются? Я их сам переименовывал. Или это из-за того что все классы в разных пакетах одинаково называются.
BLACK_RAIN вне форума   Ответить с цитированием
Старый 16.09.2019, 22:26   #8
Streletz
Профессионал
 
Регистрация: 03.01.2014
Сообщений: 2,675
Репутация: 1095
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
при переименовании пакета референсы на него автоматически не переименовываются? Я их сам переименовывал.
Это во многом от IDE зависит.
Streletz вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как перехватить tcp пакеты из java приложения Gawana Общие вопросы по Java, Java SE, Kotlin 3 23.01.2014 22:26
Java Пакеты kinogirl1 Помощь студентам 0 02.10.2011 18:31
Статические классы, глобальные переменные и viewstate Droid ASP.NET 1 05.04.2011 16:48
Классы.Не видит переменные из самого класса...Вилы=( Rid Общие вопросы Delphi 3 26.04.2010 12:32


13:50.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.