Может ли кто-нибудь сказать мне, почему я не могу объявить массив таким образом?Объявление длинного [] массива в java
long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
174251, 698027, 2794155, 11180715, 44731051, 178940587,
715795115, 2863245995, 11453115051, 45812722347, 183251413675,
733006703275, 2932028910251, 11728119835307, 46912487729835,
187649967696555, 750599904340651, 3002399684471467};
Компилятор говорит, что литерал типа int находится за пределами допустимого диапазона. Я также попытался бросить его долго, как этот
long[] powers = { 0, 0, 1, 7, 35, 155, 651, 2667, 10795, 43435,
174251, 698027, 2794155, 11180715, 44731051, 178940587,
715795115, (long)2863245995, (long)11453115051, (long)45812722347, etc ...
, но ничего не изменилось, и попытался коснуться как этот Long.valueOf(x)
где х число компилятора ведьма проблемы с.
Любые идеи?
Заранее спасибо
Добавить L на свои номера. I.e: 2863245995L и так далее. –
Спасибо, что вы прекрасно работаете. – Yetti
Ключевым принципом является то, что тип и значение выражения Java не зависят от того, как он используется. 11453115051 является сверхбольшим int literal независимо от последующего литья или в длинном [] инициализаторе. –