Как преобразовать разделенную запятыми строку в ArrayList?

Композиция точно так же звучит - вы создаете объект, вставляя части.

ИЗМЕНИТЬ, что остальная часть этого ответа ошибочно основана на следующем посылке. Это достигается с помощью интерфейсов. Например, используя вышеприведенный пример Car,

Car implements iDrivable, iUsesFuel, iProtectsOccupants
Motorbike implements iDrivable, iUsesFuel, iShortcutThroughTraffic
House implements iProtectsOccupants
Generator implements iUsesFuel

Итак, с помощью нескольких стандартных теоретических компонентов вы можете создать свой объект. Это ваша работа, чтобы заполнить, как House защищает своих обитателей и как Car защищает своих обитателей.

Наследование походит на все наоборот. Вы начинаете с полного (или полуполного) объекта, и вы заменяете или переопределяете различные биты, которые хотите изменить.

Например, MotorVehicle может поставляться с методом Fuelable и Drive метод. Вы можете оставить метод Fuel так, как он есть, потому что это то же самое, что и заполнять мотоцикл и автомобиль, но вы можете переопределить метод Drive, потому что Motorbike очень сильно отличается от Car.

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

Композиция считается более гибкой, потому что, если у вас есть такой метод, как iUsesFuel, вы можете иметь метод в другом месте (другой класс, другой проект), который просто беспокоится о том, чтобы иметь дело с объектами, которые могут подпитываться, независимо от того, это ли автомобиль, катер, плита, барбекю и т. д. Интерфейсы предусматривают, что классы, которые говорят, что они реализуют этот интерфейс, действительно имеют методы, которыми обладает этот интерфейс. Например,

iFuelable Interface:
   void AddSomeFuel()
   void UseSomeFuel()
   int  percentageFull()

, тогда у вас может быть метод где-то еще

private void FillHerUp(iFuelable : objectToFill) {

   Do while (objectToFill.percentageFull() <= 100)  {

        objectToFill.AddSomeFuel();
   }

Странный пример, но он показывает, что этот метод не заботится о том, что он заполняет, потому что объект реализует iUsesFuel, он может быть заполнен. Конец истории.

Если вы использовали Inheritance вместо этого, вам понадобятся разные методы FillHerUp для работы с MotorVehicles и Barbecues, если у вас не было какого-то довольно странного базового объекта ObjectThatUsesFuel, из которого унаследовать.

494
задан Jonik 2 September 2015 в 21:13
поделиться

1 ответ

В Kotlin, если Ваш Список строк как это и можно использовать для строки преобразования для ArrayList, используют эту строку кода

var str= "item1, item2, item3, item4"
var itemsList = str.split(", ")
0
ответ дан 22 November 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: