powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Object -> String -> Object
15 сообщений из 15, страница 1 из 1
Object -> String -> Object
    #39880622
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть строковое имя объекта, получаемое через .toString()
Код: java
1.
new MyClass().toString();


Как можно обратиться к этому объекту, к его методам, через его строковое имя?
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880623
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Если нет ссылки на экземпляр, то никак.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880648
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получить имя класса
сделать что угодно с помщью ReFlection API
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880769
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpMolasar,
Если нет ссылки на экземпляр, то никак.

.mavenproject2.MyClass@15db9742 - такое строковое значение содержит в себе ссылку на экземпляр класса?
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880771
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79получить имя класса
сделать что угодно с помщью ReFlection API
Как получить не имя класса, а конкретный экземпляр класса?
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880779
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вызвать самый базовый метод toString() object, то отработает

Код: java
1.
2.
3.
 public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }



Тот в свою очередь вызывает хеш от

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    * As much as is reasonably practical, the hashCode method defined by
     * class {@code Object} does return distinct integers for distinct
     * objects. (This is typically implemented by converting the internal
     * address of the object into an integer, but this implementation
     * technique is not required by the
     * Java™ programming language.)
     *
     * @return  a hash code value for this object.
     * @see     java.lang.Object#equals(java.lang.Object)
     * @see     java.lang.System#identityHashCode
     */
    public native int hashCode();



Как видно гарантий получения физического адреса нет.

Более перспективно КМК спросить у автора что ему собственно нужно. И можно еще почитать про
пакет com.sun.* который может содержать неофициальные методы доступа к адресному пространству хипа.
Но этот пакет не гарантируется к сохранению от версии к версии и в новых релизах Oracle может просто его
выкосить. Нужно ли автору такое или нет - тоже вопрос.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880780
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarPetroNotC SharpMolasar,
Если нет ссылки на экземпляр, то никак.

.mavenproject2.MyClass@15db9742 - такое строковое значение содержит в себе ссылку на экземпляр класса?
Давай, я сначала скажу что постановка задачи - изврат.
А потом будем обсуждать теорию, можно ли по строке адреса в памяти получить экземпояр.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880782
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак видно гарантий получения физического адреса нет.я даже рад этому. Чтобы ручки не тянулись.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880783
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonможет просто его
выкосить.пошло вроде еще со времен понятия управляемая память.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880784
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpmaytonможет просто его
выкосить.пошло вроде еще со времен понятия управляемая память.
Есть программные продукты. Такие как Hazelcast, ApacheIgnite. Это In-memory кеши
для толстого ентерпрайза. Они написаны на Java но написаны хитро. Их логика укладывается
в managed memory. А сегмент самого кеша лежит в неуправляемой памяти. Сделано ради экономии.
И ради того чтобы GC не бегал туда. Он туда и не бегает. Не его это поле деятельности. Как с ним (с неуправляемым кешом)
работают - ХЗ. Интересующиеся могут почитать исходники этих продуктов и поискать как это работает.

Вобщем есть такой злостных хак.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880870
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если отвечать на вопрос ТС - никак. GC может переместить объект в любое время. воппрос закрыт.
А теперь плавно переходим к вопросу - а что все-таки нужно
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880942
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никА теперь плавно переходим к вопросу - а что все-таки нужно
+1 первый вопрос, который должен задаваться при каждой бредовой идее.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880951
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати даже еслибы работалю. Сам по себе метод toString() имеет слабый контракт. Грубо говоря он вам ничего не должен.

Поэтому например все конвертации с датами и временем должны проходить через Parsers/Formatters но ни в коем случае
не через toString.

Единственный функционал который toString обеспечивает это частичное текстовое человекочитабельное представление объекта
для логгирования и печати на экране.
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880956
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати даже еслибы работалю
а почесму бы и не работать....

например: если научится последовательно перебирать все объекты в памяти (что, наверное, в принципе, можно сделать через рефлекшион) - то найти объект который вернет такой же toString() - вполне себе можно.

только смысла в этом, кроме "смотри как я умею", лично я не вижу
...
Рейтинг: 0 / 0
Object -> String -> Object
    #39880957
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и опять таки, ссылку на объект все равно хранить придется, иначе его Garbage Collector из памяти вычистит )))
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Object -> String -> Object
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]