Что означает импорт class.1? - PullRequest
       1

Что означает импорт class.1?

0 голосов
/ 14 октября 2019

Я нашел что-то подобное в чьем-то коде, и мне интересно, что именно это делает?

import some.package.MyClass.1;

А потом это вызывается конструктором:

new 1(some, arguments);

Этот код находится внутриКласс MyClass.

import some.package.MyClass.1;
class MyClass {

  public MyClass() {
  }

  doSomethig(){
    someOperations...
    Files.walkFileTree(root, new 1(this, destination));
  }
}

РЕДАКТИРОВАТЬ Этот код поступает из декомпиляции файла JAR. Как указано ниже, это может быть причиной такого поведения.

1 Ответ

0 голосов
/ 14 октября 2019

Это означает, что кто-то допустил ошибку, поскольку 1 не является допустимым идентификатором в Java. Возможно, кто-то, кто поделился этим кодом с вами, хотел скрыть имена своих классов и заменил исходное имя на «1».

Идентификатор - это последовательность букв Java и цифр Java неограниченной длины, первая из которых должна быть буквой Java

[...]

"Буквы Java" включают прописные и строчные латинские буквы ASCII AZ (\ u0041- \ u005a)и az (\ u0061- \ u007a) и, по историческим причинам, подчеркивание ASCII (_, или \ u005f) и знак доллара ($ или \ u0024). Символ $ следует использовать только в механически сгенерированном исходном коде или редко для доступа к ранее существующим именам в устаревших системах.

Документация: Идентификаторы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...