Помогает ли использование instanceof help и исключение типа приведения типа java производительность? - PullRequest
0 голосов
/ 02 сентября 2011

Я использую устаревшую библиотеку, и мне нужно использовать приведение Object to Collection.Во избежание исключений я думаю использовать instanceof.Итак, вопросы два: 1. Если я использую instanceof - нужно использовать try ... catch для исключения исключений?2. Это влияет на производительность?Спасибо.

Ответы [ 3 ]

5 голосов
/ 02 сентября 2011
  1. Если вы используете instanceOf, тогда вам не нужно try-catch(ClasscastException e).instanceOf гарантированно работает, даже при null с.

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

ПРИМЕЧАНИЕ: instanceof не работает с Generics из-за стирания типа.

1 голос
/ 02 сентября 2011

Иногда полезно знать тип объекта во время выполнения, особенно при приведении типов.В Java неправильное приведение вызывает ошибку во время выполнения.Многие неверные приведения могут быть обнаружены во время компиляции.Однако приведение, включающее иерархии классов, может привести к неверным приведениям, которые могут быть обнаружены только во время выполнения.Java предоставляет оператор времени instanceof для ответа на этот вопрос.Это не через каких-либо исключений.Современные компиляторы JVM / JIC устраняют снижение производительности большинства традиционно «медленных» операций, включая instanceof, обработку исключений, отражение и т. Д.

см. эту ссылку на стекопоток

Следовательно, отправляйтесь, например, без всякого беспокойства, но вы не сможете использовать его в коллекции, они там не работают. дженерики Java и instanceof

1 голос
/ 02 сентября 2011

Instanceof на самом деле не влияет на производительность в современных JVM, любое воздействие будет незначительным.

вот статья на эту тему с некоторыми цифрами!

...