Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Antarit
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 9
#1

Как можно узнать может ли супер класс кастануться в субкласс - Программирование Android

01.02.2016, 16:46. Просмотров 292. Ответов 9

В общем, у меня есть класс Диета, который состоит из Рационов, которые состоят из приемов пищи, которые состоят из продуктов и все они наследуются от абстрактного класса, который содержит в себе методы по вычислению калорий и нутриентов(белки, жиры, углеводы) получается своего рода многомерный массив в основе которого лежит продукт. Так вот сейчас у меня только 2 вопроса, 1-ый главный ибо я хочу сейчас приложеньку которая сделает то, что я от нее ожидаю, второй для развития:
1. Как получить бульку, которая вернет тру, если абстрактный класс кастуется в продукт и фолс если не кастуется.
2. Есть ли какой-то паттерн проектирования таких классов, которые по сути являются массивами массивом в основе которых лежит 1 класс и по его данным вычисляются данные для остальных, то есть во так примеру калорийность приема пищи зависит от совокупности калорийности продуктов которые в него входят, точно так же для рациона калорийность вычисляется из калорийности приемов пищи...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2016, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно узнать может ли супер класс кастануться в субкласс (Программирование Android):

Как вообще такое может быть, это просто супер баг какой-то - Lazarus
Есть программа, результат выполнения отладочных строк procedure spervogo; var counter1, counter2,counter1R, counter2R, y : integer; ...

Как в IntelliJ IDEA посмотреть методы которые могут быть перегружены из супер класса в класс наследник - JAVA IDE
public class CloseAction extends WindowAdapter { } Как мне посмотреть какие есть методы у WindowAdapter и перегрузить их в свой...

Можно ли узнать класс, на который ведёт указатель - C++ WinAPI
вообщем есть несколько классов и их указатели записанные в виде UINT. как узнать на какой тип класса ведет указатель? Такое вообще...

Супер класс мобильный телефон задача - Java SE
Создать суперкласс мобильный телефон и подклассы Nokia,Siemens,Samsung. С помощью конструктора автоматически установить Id каждого...

Как разработчик может узнать, где его скрипт используют? - PHP
Предположим есть скрипт движка на php. Интересно какими методами разработчик может узнать на каких сайтах его скрипт установлен? Самый...

Как узнать класс - Java SE
У меня есть класс(классА)в конструктор которого передается объект другого класса(КлассБ).У того класса есть некие поля,как мне узнать...

9
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.02.2016, 17:16 #2
Antarit,
Java
1
abstractObject instanceof Product
1
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
01.02.2016, 20:05 #3
Цитата Сообщение от Antarit Посмотреть сообщение
если абстрактный класс кастуется в продукт
А разве такое может быть? По-моему тут всегда false будет.
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.02.2016, 20:23 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Lumber, ну если я правильно понял ТСа, то ситуация следующая.

Java
1
2
3
public class Abstacted {}
 
public class Product extends Abstracted {}
и если

Java
1
Abstracted p = new Product();
тогда
Java
1
p instanceof Product  //true
1
Antarit
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 9
01.02.2016, 21:14  [ТС] #5
YuraAAA, меня поняли) спасибо тебе, что понял меня) а так у меня ваще страшная фигня тварится и я таки жду что кто-нить подскажет паттерн который исправит этот бред) короче у меня есть класс DietType типо диетический тип и он содержит поля Белки, жиры, углеводы, калории и ArrayList в который я запихиваю его составляющие, то есть класс Diet состоит из 7-ми объектов Ration, который в свою очередь состоит из n-го количества Meal, который в своб очередь состоит из 2х-3х FoodItem котоырй в свою очередь содержит 1 FoodProduct из базы данных) и вот все эти классы кроме FoodProduct который я считываю из базы являются наследниками этого абстрактного DietType который рекурсивно считывает все эти белки, жиры углеводы и калории из массиво в массиве) корчое меня уже бомбит от этого всего и я хз че делать)
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.02.2016, 21:26 #6
Antarit, да, похоже, что Вы что-то перемудрили. Если это не тайна, покажите Ваши классы. Вы используете ORM или делайте запросы вручную?
1
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
01.02.2016, 22:19 #7
Antarit, а с какой целью надо проверять каким именно подклассом является каждый элемент? Ведь DietType позволяет белки, жиры, углеводы, калории получить.
1
Antarit
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 9
01.02.2016, 23:25  [ТС] #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
Antarit, да, похоже, что Вы что-то перемудрили. Если это не тайна, покажите Ваши классы. Вы используете ORM или делайте запросы вручную?
YuraAAA, эммм что такое ORM? я использую SQLiteAssetsHelper и наделал провайдеры чтоли которые достают из таблиц данные и запихивают в структуры и некоторые из этих провайдеров сохраняют данные) так что ваще без понятия что у меня происходит.
Цитата Сообщение от Lumber Посмотреть сообщение
Antarit, а с какой целью надо проверять каким именно подклассом является каждый элемент? Ведь DietType позволяет белки, жиры, углеводы, калории получить.
эммм изначально количество белков на 100 грамм содержится в FoodProduct а FoodItem уже имеет поле масса и вычисляет сколько всего белков жиров и углеводов, и так же рекурсивно Meal вычисляет количество белков жиров и углеводов из FoodItem и так же Ration из Meal. Так вот проверяю я является ли подклассом FoodItem чтобы вызвать переопределенный в нем метод вычисления этих самых белков жиров и углеводов в соотношении с увеличением уменьшением массы продукта...

Добавлено через 5 минут
Цитата Сообщение от YuraAAA Посмотреть сообщение
Если это не тайна, покажите Ваши классы
Смогу вылезти из своей запутанности чтобы показать рабочую версию, тогда залью на гитхаб и поделюсь ссылкой, если захотите) возможно когда будет рабочий вариант вы или еще кто подскажет мне более разумный вариант исполнения моего хотения)
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.02.2016, 23:38 #9
Antarit, да, как-то закручено. Нужно подумать над упрощением иерархии
1
Antarit
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 9
04.02.2016, 13:53  [ТС] #10
Цитата Сообщение от YuraAAA Посмотреть сообщение
Вы используете ORM или делайте запросы вручную?
Спасибо огромное за ORM) читаю сейчас о нем и понимаю, что я жестко тупанул сразу не загуглив "че за ORM")
0
04.02.2016, 13:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2016, 13:53
Привет! Вот еще темы с ответами:

Как класс может иметь GUI - C#
Как сделать, чтобы класс мог иметь собственное GUI? Например, на форме создаётся tabControl, и на каждой вкладке разные экземпляры класса...

Как в паскале узнать что строка может быть переведена в число ? - PascalABC.NET
Например -65.77 является числом, а 674е - числом не является.

Асимметричная криптография. Как нарушитель может узнать точное содержание текста? - Криптография
Здравствуйте. Зная открытый ключ,алгоритм шифрования,длину текста и некоторую часть криптотекста(шифротекста) ,как нарушитель может...

Как узнать класс компонента - Visual Basic .NET
В общем, мне нужно перебрать компоненты формы, и в зависимости от того, какой это компонент, сделать некоторые действия. Допустим, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru