Как создать переменную без типа?
сабж
Как ее создать и присвоить ей значение любого типа/класса аналог типа variant из делфи Возможно ли это? Если нет, то как это реальзавать на яве? |
Ответ: Как создать переменную без типа?
В MP это точно невозможно, в java, на сколько я знаю, тоже.
|
Ответ: Как создать переменную без типа?
Я пробовал в вектор совать разные типы. Получилось. Можно засунуть в ячейки одного вектора разные типы. Но чтобы потом извлечь, нужно написать в скобочках круглых тип извлекаемых данных, иначе просто напросто не скомпилируется. То есть ты всё равно должен будешь наперёд знать какой тип данных хранится в данной ячейке.
|
Ответ: Как создать переменную без типа?
по-идее должен быть указатель без типа, но указатель только указывает на обьект, обьект без типа не может быть
Phantom_wc ты работал с указателями наверно |
Ответ: Как создать переменную без типа?
jimon, если честно, то я вообще не слышал, что в java есть указатели. Если есть, то вполне возможно, что в векторе они и используются. Я не смотрел как он устроен. Может в Java вообще все операции происходят с указателями? О_о Ждём Пилигрима, он всех рассудит =)
|
Ответ: Как создать переменную без типа?
Phantom_wc
в паскале точно есть указатели (насчёт midletpascal не знаю) |
Ответ: Как создать переменную без типа?
Цитата:
В MP указателей нет, поскольку их нет в j2me(может быть нечто подобное существует на уровне JVM, но в языке указатели не реализованы). |
Ответ: Как создать переменную без типа?
Все переменные-объекты суть указатели. Просто неявные. В яве все что не static, создается в куче, делайте выводы.
В векторе необязательно знать какой тип хранится в ячейке, достаточно знать возможные варианты и проверять с помощью instanceof |
Ответ: Как создать переменную без типа?
instanceof - это метод вектора чтоли? Не слышал о таком.
Добавил позже: Нашёл в интернете пример. Это вроде как оператор что ли? PHP код:
Очень интересная вещь. Java продолжает меня удивлять и нравится мне всё больше и больше =) |
Ответ: Как создать переменную без типа?
В java есть способы записи в переменную разные типы данных. Там есть класс под названием Object и от этого класса все типы данных наследут свои свойства. Так что если объявить пременную или массив переменных типа Object, то туда можо записывать информацию любых типов. Класс Vector - это типа расширяемый массив элементов типа Object, так что в векторе можно хранить абсолютно любую информацию.
|
Ответ: Как создать переменную без типа?
вот что нашел в стандартном факе, может быть это подойдет?:
Данная особенность языка позволяет создавать собственные типы данных, являющиеся совокупностью других типов. Например, если вы пишете игру, где игрок управляет персонажем на экране, вы вполне можете использовать комбинированный тип для описания позиции, здоровья и прочих параметров персонажа: type heroType = record positionX, positionY: integer; health: integer; end; Чтобы создать переменную свежезаданного типа, используйте обычную формулировку в секции 'var': var hero: heroType; Также вы можете использовать созданный тип в качестве параметра, при описании процедур и функций: function isHeroDead(hero: heroType): boolean; begin if (hero.health <= 0) then isHeroDead := true; else isHeroDead := false; end; Новый тип может быть определен непосредственно в секции 'var': var hero: record positionX, positionY: integer; health: integer; end; Чтобы получить доступ к отдельным элементам комбинированного типа, используйте оператор "." (точка): ... { передвигаем персонажа вправо } hero.positionX := hero.positionX + 1; ... Нельзя копировать впрямую из переменной в переменную данного типа: var a, b: record x: integer; end; begin ... a := b; { это - неправильно } ... a.x := b.x; { нужно копировать каждый элемент комбинированного типа } end. |
Ответ: Как создать переменную без типа?
И если это правльно, то обьясните мне что это за тип? И пример если можно, а то я не понял.
|
Ответ: Как создать переменную без типа?
я не перечитывал всё, поэтому мож не в теме, но во многих языках есть базовый тип переменных.
Например: object в С# и BlitzMAX, Variant в Delphy и Visual Basic... Переменная этого базового типа может хранить в себе значение любого типа данных (по сути это ссылка на оригинальный объект определённого типа). Однако перед использованием данные из этой переменной надо извлечь... с помощью каста или спец функции или метода класса. |
Ответ: Как создать переменную без типа?
То что описал gost6681 преобразуется в классы без методов, только с полями.
|
Часовой пояс GMT +4, время: 10:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot