julia_v_iluhina

Untitled

Jan 29th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.34 KB | None | 0 0
  1. public class AtTodoMVCPageWithClearedDataAfterEachTest extends homework.third.v3.BaseTest{
  2. /*
  3.     раз мы в одном проекте держим несколько решений
  4.     то наследуйся от BaseTest - из этого же пекеджа - todomvctest/src/test/java/homework/fourth/v1/
  5. */
  6. **************************************************
  7.    private String makeGivenCommand(String... tasks) {
  8.    /*
  9.         раз пока реализуем версию с параметрами-строками
  10.         то советую назвать параметр не tasks, а taskTexts
  11.         версию с объектами - реализуем позже
  12.    */
  13.         String results = "localStorage.setItem(\"todos-troopjs\", \"[";
  14.  
  15.         for (String task : tasks) {
  16.         // не понятна конструкция (String task : tasks). Понимаю, что тут надо создать класс. Но как можно упростить для начала?
  17.         /*
  18.             конструкция = for (String task : tasks)
  19.             это вариант цикла, когда мы обходим некую коллекцию tasks
  20.             и на каждой итерации - работаем с текущим знасением - task
  21.  
  22.             вообще об этой конструкции - можно почитать
  23.             http://developer.alexanderklimov.ru/android/java/for.php  (раздел - Аналог foreach)
  24.             http://www.linkex.ru/java/cycle-for.php (раздел - Версия "for-each" цикла for)
  25.             https://www.tutorialspoint.com/javaexamples/method_for.htm
  26.             http://pr0java.blogspot.com/2015/04/for-foreach.html
  27.  
  28.             а теперь  - и про varargs параметры методов
  29.             http://www.linkex.ru/java/varargs.php
  30.             http://stackoverflow.com/questions/2161912/why-varargs-should-be-the-last-in-method-signature
  31.             http://www.java-tips.org/java-se-tips-100019/24-java-lang/481-using-the-varargs-language-feature.html
  32.  
  33.             про класс - пока не думай
  34.             давай разберемся с этой версией
  35.             когда мы работаем просто со строками - с текстами тасок
  36.         */
  37.             results += "{\\\"completed\\\":false, \\\"taskTexts\\\":\\\"tasks\\\"},";
  38.             // тут tasks - не параметр, а значение строки. Вообщем в данном месте самые большие проблемы.
  39.             /*
  40.                 ты верно заметил, действительно, тут tasks - просто часть строки
  41.  
  42.                 нам нужно в строку, которую мы собираем, включить значение строковой переменной task
  43.                 (!!!не tasks - т к - tasks = ВСЕ переданные строки, а нам нужно на каждой итерации цикла -
  44.                 для каждой отдельной таски - добавить {....},)
  45.  
  46.                 давай вернемся к первоначальному варианту
  47.                 localStorage.setItem("todos-troopjs", "[{\"completed\":false, \"title\":\"a\" }]")
  48.  
  49.                 заметь - как описывается текст таски - \"title\":\"a\"
  50.                 а в собираемой строке - ты не используешь \"title\"
  51.                 почему?
  52.  
  53.                 сравни =
  54.                 "\\\"title\\\":\\\"task\\\""
  55.                 и
  56.                 "\\\"title\\\":\\\"" + task + "\\\""
  57.  
  58.                 в первом случае - такую строку и получим = \"title\":\"task\"
  59.                 а во втором случае - получим другую строку = \"title\":\"...\" (... - то, что содержит строковая переменная task)
  60.  
  61.                 и тебе именно вот такой вариант и нужен )
  62.                 погугли тему java string concatenation
  63.                 самый простой вариант - это "a" + "b" + "c"
  64.                 это если у тебя просто строчки  "a" и "b" и "c"
  65.                 а если допустим строковая переменная b="ddldldldldl"
  66.                 и нам нужно с ее значением строку собрать = то будет вот так = "a" + b + "c"
  67.             */
  68.         }
  69.         if (tasks.length > 0) {
  70.             results = results.substring(0, (results.length() - 2));
  71.         }
  72.         results = results + "]')";
  73.  
  74.         System.out.println(results);
  75.         return results;
  76.     }
  77. /*
  78.     Пока давай не спешить с вариантом метода
  79.     который оперирует объектами класса Task
  80.    
  81.     пусть нам передают строки = тексты тасок
  82.     усложнять будем потом
  83.    
  84.     подравняй это
  85.     и дальше уже обсудим
  86.    
  87.     вопросы задаешь верные)
  88.     это уже очень ок
  89.     скелет метода - тоже ок
  90. */
Advertisement
Add Comment
Please, Sign In to add comment