class is never used java что делать

In Java, how do I ensure a dummy class is never used?

December 2018

3.4k time

But the compiler doesn’t like it. Can you think of any way to do this?

EDIT: to be clear (my fault I wasn’t clear before), these won’t just be empty classes. There will be all sorts of code in here, and by «keep the compiler happy» I did indeed mean that elsewhere I will be instantiating them, calling methods etc etc. I want this code elsewhere to compile but fail at runtime. I have accepted Jon’s answer but will also be using @Deprecated and documenting extensively as appropriate.

11 answers

Почему бы вам не просто не поставить этот класс в банку, который получает развернутую. Таким образом, он будет там во время компиляции, но если кто-то пытался получить доступ к нему во время выполнения вы получите ClassNotFoundException.

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

Что вы имеете в виду под «использовать»? Если вам нужно иметь их там, это звучит как компилятор должен иметь возможность создавать классы. Однако, если вы не хотите какой-либо экземпляр класса, который будет создан, а затем создать Assertion или выбросить исключение в реальном конструкторе.

Я не думаю, что вы можете сделать это, но вы можете поставить @Deprecated тег перед объявлением класса. Таким образом, компилятор выдаст вам предупреждение, если вы пытаетесь использовать его, но он все равно будет компилировать.

Просто добавьте фиктивное условие:

Предполагая, что вы не хотите IllegalStateExceptions потенциально быть брошенным в вашем производстве код, используйте утверждение и убедитесь, что они включены в среде QA / Test. Код немного лучше, тоже:

Элемент программы аннотированный @Deprecated является один, что программисты не рекомендуется использовать, как правило, потому что это опасно, или потому, что лучшая альтернатива существует. Составители предупреждают, когда устаревший программный элемент используются или переопределен в не устаревшем коде.

Вы можете использовать свой собственный ClassLoader и проверять каждый класс против черного списка классов.

Используйте AssertionError вместо IllegalStateException

Вы можете обойти компилятор с чем-то вроде:

Источник

Intellij warning: Return value of the method is never used

I have some code that seems OK, but Intellij IDEA warns about many of its methods that return values that

Return value of the method is never used

Here is the actual code below, a builder class.

Is there a better way to implement this? If the code is okay, what causes this warning?

Edit: Usage of the StreamParserBuilder, calling the withX functions:

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

5 Answers 5

In your example, you don’t really benefit from the builder pattern. If it’s rare use case, I’d just let it be, and ignore the warnings. But if it’s frequent, it might be beneficial to include conditional assignment directly to your builder. So you may write either:

That would mean to duplicate all builder methods.

Or you can introduce fluent preposition:

Implementation of this would be extremely simple, if your builder is interface.

Your when() method can return a proxy bypasing following method call, if it’s not build() and returning back the oeiginal builder.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Better design would be if StreamParser doesn’t know anything about its builder. I mean, constructor StreamParser doesn’t take builder as parameter. Better usage is:

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

The reason the with methods of a builder return this; is so method calls can be chained:

In your case, you’re ignoring the returned value in your calling code:

As I have found, Intellij IDEA gives this warning for public methods, which is questionable, because a public (or protected ) method could be called from other packages that Intellij IDEA has not included in its analysis, and that is the likely case if you are writing a library (JAR) for use by other projects.

Источник

Java interface methods never used

So, I started using interfaces in Java a while ago. I have already created one, and I have a class, that implements that interface.

So this is the interface itself:

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

And this is the class that implements the Actor interface:

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

But, as you can see in the first picture, no methods are used, ecxept for create(). The most strange thing is that everything works absolutely fine! Only these underlined words freak me out a bit)

3 Answers 3

Your methods are never actually used. This is IntelliJ’s way of highlighting dead code. Until you actually instantiate an Actor and call the method (see code sample below), it will appear as unused.

There is nothing wrong with these warnings: the IDE tells you that you could delete the underlined methods from the interface, because there is no code in your solution that would call these methods through the specific interface.

In top-down development, most interfaces start off looking like this: you start with an interface that has a lot of methods that nobody calls, and then the number of the unused methods goes down as you start using other operations from the interface. Eventually the number of unused methods goes down to zero, because your code starts making use of all interface methods that you define (or you delete the unused methods from your interface).

By default all methods in interface are abstract. That means they cannot have any definition. If everything runs and you have underlines, these are probably warnings. You can view more information by placing your cursor on underlined text (happens in Eclipse IDE). When you implement the interface you have to override all the methods present in interface, which you have done otherwise you would have got compile time error.

You have actually implemented/ used all methods of interface. Notice the curly brackets after method definitions in your class Balls. You just haven’t written any code in them.

Read more about interfaces and you’ll get a clearer picture.

Источник

import java.util.scanner never used

import java.util.scanner never used

I’m not sure what I need to insert.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

6 Answers 6

Delete the import line as it is not needed. Nowhere in the code are you using that type.

Just remove the following import statement from your program.

That’s not an error. Most likely a warning in your IDE that suggest you to remove this unused import.

In java you may have as many unused imports as you want, it doesn’t impact the performance at all. But it is recommended to have only those you need, so your program is maintainable.

So, to fix this, just delete that line.

Just remove import java.util.Scanner; and it should stop to complain.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

All the other answers are saying «Delete the Scanner import statment».

My question is. why was it in there in the first place?

The purpose of the warning is to say «You have this import, but you’re not using it. Did you mean to use this, and just forgot to add it?»

I see those warnings as a quasi-to-do-list for my class. Most of the time it happens when I add something, remove it because it needs to be refactored, and haven’t put it back in yet. So my guess is you had a Scanner in there, it wasn’t working right, you took Scanner out, but the import was left.

Chances are if you imported it once, you’ll need to use it somewhere. Before you go deleting it, remember why it was there.

Источник

Русские Блоги

20 распространенных ошибок Java и как их избежать

оригинал:50 Common Java Errors and How to Avoid Them (Part 1)
Автор:Angela Stringfellow
перевод: Гусь напуган

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

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

Чтобы получить дополнительные советы и рекомендации по написанию программ на Java, вы можете загрузить наш «Comprehensive Java Developer’s Guide«Эта книга содержит все, что вам нужно, от всевозможных инструментов до лучших веб-сайтов и блогов, каналов YouTube, влиятельных лиц в Twitter, групп в LinkedIn, подкастов, мероприятий, которые необходимо посетить, и многого другого.

Ошибка компилятора

Сообщения об ошибках компилятора создаются, когда компилятор выполняет код Java. Важно, что компилятор может выдавать несколько сообщений об ошибках для одной ошибки. Так что исправьте ошибку и перекомпилируйте, что может решить многие проблемы.

1. “… Expected”

Эта ошибка возникает, когда в коде чего-то не хватает. Обычно это происходит из-за отсутствия точки с запятой или закрывающей скобки.

Обычно это сообщение об ошибке не указывает точное местонахождение проблемы. Чтобы найти проблему, вам необходимо:

2. “Unclosed String Literal”

Если в конце строки отсутствует кавычка, создается сообщение об ошибке «Незамкнутый строковый литерал», и это сообщение отображается в строке, где произошла ошибка.

Обычно эта ошибка возникает в следующих ситуациях:

3. “Illegal Start of an Expression”

Есть много причин для ошибки «Незаконное начало выражения». Это стало одним из наименее полезных сообщений об ошибках. Некоторые разработчики думают, что это вызвано плохим запахом кода.

Обычно выражение создается для генерации нового значения или присвоения значений другим переменным. Компилятор ожидает найти выражение, но посколькуГрамматика не оправдывает ожиданийВыражение не найдено. Эту ошибку можно найти в следующем коде.

4. “Cannot Find Symbol”

Это очень распространенная проблема, потому что все идентификаторы в Java должны быть объявлены до их использования. Эта ошибка возникает из-за того, что компилятор не понимает значения идентификатора при компиляции кода.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Сообщение об ошибке «Не удается найти символ» может иметь множество причин:

5. “Public Class XXX Should Be in File”

Если класс XXX и имя файла программы Java не совпадают, будет сгенерировано сообщение об ошибке «Открытый класс XXX должен быть в файле». Только когда имя класса и имя файла Java совпадают, код может быть скомпилирован.

Чтобы решить эту проблему, вы можете:

6. “Incompatible Types”

Когда компилятор выдает сообщение «несовместимые типы», решить эту проблему действительно непросто:

7. “Invalid Method Declaration; Return Type Required”

Это сообщение об ошибке означает, что тип возвращаемого значения метода не объявлен явно в объявлении метода.

Есть несколько ситуаций, которые вызывают ошибку «недопустимое объявление метода; требуется тип возвращаемого значения»:

8. “Method in Class Cannot Be Applied to Given Types”

Это сообщение об ошибке более полезно, оно означает, что метод был вызван с неправильными параметрами.

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

9. “Missing Return Statement”

Когда в методе отсутствует оператор возврата, выдается сообщение об ошибке «Отсутствует оператор возврата». Метод с возвращаемым значением (тип, не являющийся недействительным) должен иметь оператор, который возвращает значение, чтобы значение можно было вызвать вне метода.

Есть несколько причин, по которым компилятор выдает сообщение «отсутствует оператор возврата»:

10. “Possible Loss of Precision”

Когда информация, присвоенная переменной, превышает верхний предел, который может нести переменная, выдается ошибка «Возможная потеря точности». Как только это произойдет, часть информации будет отброшена. Если это не проблема, переменную следует явно объявить в коде как новый тип.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Ошибка «возможная потеря точности» обычно возникает в следующих ситуациях:

Основные типы данных в JavaОбъясняет характеристики различных типов данных.

11. “Reached End of File While Parsing”

Это сообщение об ошибке обычно появляется, когда в программе отсутствует закрывающая фигурная скобка («>»). Иногда эту ошибку можно быстро исправить, добавив закрывающую скобку в конце кода.

Приведенный выше код приведет к следующей ошибке:

Инструменты кодирования и правильные отступы кода могут упростить поиск этих несоответствующих фигурных скобок.

12. “Unreachable Statement”

Когда оператор появляется в месте, где он не может быть выполнен, выдается ошибка «Недоступный оператор». Обычно это делается после оператора break или return.

Обычно эту ошибку можно исправить, просто переместив оператор return. Прочтите эту статью:Как исправить ошибку «Недостижимый отчет»。

13. “Variable Might Not Have Been Initialized”

Если локальная переменная, объявленная в методе, не инициализирована, возникнет такая ошибка. Такая ошибка возникает, если вы включаете переменную без начального значения в оператор if.

14. “Operator … Cannot be Applied to ”

Эта проблема возникает, когда оператор действует с типом, который не входит в область его определения.

Эта ошибка часто возникает, когда код Java пытается использовать строковые типы в вычислениях (вычитание, умножение, сравнение размеров и т. Д.). Чтобы решить эту проблему, вам необходимо преобразовать строку в целое число или число с плавающей запятой.

15. “Inconvertible Types”

Когда код Java пытается выполнить недопустимое преобразование, возникает ошибка «Неконвертируемые типы».

Например, логические типы нельзя преобразовать в целые числа.

16. “Missing Return Value”

Если оператор возврата содержит неверный тип, вы получите сообщение «Отсутствует возвращаемое значение». Например, посмотрите на следующий код:

Возвращается следующая ошибка:

Обычно эта ошибка возникает из-за того, что оператор return ничего не возвращает.

17. “Cannot Return a Value From Method Whose Result Type Is Void”

Эта ошибка Java возникает, когда метод void пытается вернуть какое-либо значение, например, в следующем коде:

Обычно эту проблему может решить изменение типа возвращаемого значения метода, чтобы он соответствовал типу в операторе возврата. Например, следующий void можно изменить на int:

18. “Non-Static Variable … Cannot Be Referenced From a Static Context”

Эта ошибка возникает, когда компилятор пытается получить доступ к нестатической переменной в статическом методе:

Чтобы устранить ошибку «Нестатическая переменная… На нее нельзя ссылаться из статического контекста», можно сделать две вещи:

19. “Non-Static Method … Cannot Be Referenced From a Static Context”

Эта проблема возникает, когда код Java пытается вызвать нестатический метод в статическом классе. Например, такой код:

Вызовет эту ошибку:

Чтобы вызвать нестатический метод в статическом методе, необходимо объявить экземпляр класса вызываемого нестатического метода.

20. “(array) Not Initialized”

Если массив был объявлен, но не инициализирован, вы получите сообщение об ошибке типа «(массив) не инициализирован». Длина массива фиксирована, поэтому каждый массив необходимо инициализировать требуемой длиной.

Следующий код правильный:

это тоже нормально:

Продолжение следует

Сегодня мы обсуждали ошибки компилятора, в следующий раз мы обсудим различные исключения времени выполнения, которые могут возникнуть. Как и структура этой статьи, в следующий раз она будет содержать фрагменты кода, пояснения и ссылки по теме, которые помогут вам исправить код как можно скорее.

Интеллектуальная рекомендация

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

1 проект SPSS Modeler 2-х банковская пользовательская модель интеллектуального анализа данных

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Введение в микросервисы Java (Spring-boot + MyBatis + Maven)

1. Создание проекта Создайте новый проект maven, как показано ниже: Выберите путь, следующий шаг Введите содержимое 1 и 2, нажмите Готово Проект создан, структура которого показана на рисунке ниже: За.

Использовать эксперимент на табличном пространстве ExpDP / IMPDP

Объявите, что этот эксперимент использует машину, два экземпляра для моделирования передачи табличного пространства. Пространство табличного пространства передачи немного: дамп из метаданных информаци.

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Используйте python для анализа и воспроизведения данных (1)

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Формат протокола ICMP ICMP-сообщение инкапсулировано в IP-пакет, потому что разведчик должен легко упаковать. Наиболее часто используемым типом является то, что активный запрос равен 8, а ответ активн.

Вам также может понравиться

Использование библиотеки классов telnetd java для создания потока демона

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

Принципы и практика системы баз данных Чэнь Хуншун Эксперимент 5 Запрос данных

class is never used java что делать. Смотреть фото class is never used java что делать. Смотреть картинку class is never used java что делать. Картинка про class is never used java что делать. Фото class is never used java что делать

1、 :9200/index/type/id Индекс: эквивалентный базу данных Тип: эквивалентный таблицу ID: ID, эквивалентный идентификатору каждой записи 2, используйте встроенный тестовой веб-сервис Golan.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *