• ,

task31.task3104

Валидатор не принимает потому что не переопределен метод VisitFileFailed, также пишет что SKIP_SUBTREE не возвращается (думаю это из за ошибки в переопределении)
Пожалуйста, подскажите в чем ошибка с переопределением.

Поиск скрытых файлов

В классе Solution переопредели логику двух методов:
— visitFile кроме своей логики должен добавлять в archived все пути к zip и rar файлам
— visitFileFailed должен добавлять в failed все пути к недоступным файлам и возвращать SKIP_SUBTREE

Пример вывода:
D:/mydir/BCD.zip

Метод main не участвует в тестировании

package com.javarush.task.task31.task3104;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.Objects;

/*

Поиск скрытых файлов
*/
public class Solution extends SimpleFileVisitor<Path> {
    public static void main(String[] args) throws IOException {
        EnumSet<FileVisitOption> options = EnumSet.of(FileVisitOption.FOLLOW_LINKS);
        final Solution solution = new Solution();
        Files.walkFileTree(Paths.get("D:/"), options, 20, solution);

        List<String> result = solution.getArchived();
        System.out.println("All archived files:");
        for (String path : result) {
            System.out.println("\t" + path);
        }

        List<String> failed = solution.getFailed();
        System.out.println("All failed files:");
        for (String path : failed) {
            System.out.println("\t" + path);
        }
    }

    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException{
        if (file.toString().endsWith("rar") || file.toString().endsWith("zip"))
            archived.add(file.toString());

        Objects.requireNonNull(file);
        Objects.requireNonNull(attrs);
        return FileVisitResult.CONTINUE;
    }


    public FileVisitResult VisitFileFailed(Path file) throws IOException{
        failed.add(file.toString());

        Objects.requireNonNull(file);
        return FileVisitResult.SKIP_SUBTREE;

    }

    private List<String> archived = new ArrayList<>();
    private List<String> failed = new ArrayList<>();

    public List<String> getArchived() {
        return archived;
    }

    public List<String> getFailed() {
        return failed;
    }
}

Тестовое задание на стажировку JavaRush: Полезные ссылки и хинты

Хочу поделиться с вами полезными ссылками, хинтами и советами, которые помогут при выполнении тестового задания на стажировку в реальный проект на JavaRush.

Конечно, можно просто бездумно накопировать решение тестового задания из интернета, благо примеров хватает, но мы-то хотим разобраться, что делаем :) Этот пост для тех, кто не обнаружил среди стека технологий, требующихся по заданию, знакомых слов и хочет это исправить)

Поздравление с 23 февраля от Зеленой лягушки

Добрый вечер, джаварашевцы!
Всех служивших, с днем Советской Армии! Ибо как говорит моя духовная наставница Ри Расмуссен: «Дорогой, мужчина должен умереть или на войне, или в спортзале или на бабе. Все остальное не „спарта“. Давайте сегодня выпьем за то, что бы нам не пришлось умирать на войне!


С уважением,
Зеленая лягушка.
  • ,

com.javarush.task.task18.task1827

Нынешняя com.javarush.task.task18.task1827
бывшая level18.lesson10.bonus02

Вопросы следующие:
1. Не очень понимаю почему валидатор не принимает решение. С задачей с оговорками (об этом ниже) справляется, вывод отформатирован как надо, потоки закрываются.

Задание:
Прайсы
CrUD для таблицы внутри файла.
Считать с консоли имя файла для операций CrUD.
Программа запускается со следующим набором параметров:
-c productName price quantity

Значения параметров:
где id — 8 символов.
productName — название товара, 30 chars (60 bytes).
price — цена, 8 символов.
quantity — количество, 4 символа.
-c — добавляет товар с заданными параметрами в конец файла, генерирует id самостоятельно, инкрементируя максимальный id, найденный в файле.

В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
id productName price quantity
Код:

public class Solution {
    static String fileName;
    final static int idLength = 8;
    final static int productNameLength = 30;
    final static int priceLength = 8;
    final static int quantityLength = 4;
    static ArrayList<String[]> list = new ArrayList<String[]>();

    public static void main(String[] args) throws Exception {
        if (args.length < 1)
        {
            return;
        }
        String param = args[0];

        switch (param)
        {
            case "-c" : {
                setFileName();
                readFile();
                writeFile(args);
                break;
            }
        }
    }

    public static void writeFile(String[] args) throws IOException
    {
        String newProductName = String.format("%-" + productNameLength + "." + productNameLength + "s", args[1]);
        String newPrice = String.format("%-" + priceLength + "s", args[2]);
        String newQuantity = String.format("%-" + quantityLength + "s", args[3]);
        list.add(new String[] {getNextId(), newProductName, newPrice, newQuantity});

        BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
        int end = list.size() - 1;
        for (int i = 0; i < end; i++)
        {
            writer.write(list.get(i)[0]+list.get(i)[1]+list.get(i)[2]+list.get(i)[3]);
            writer.newLine();
        }
        writer.write(list.get(end)[0]+list.get(end)[1]+list.get(end)[2]+list.get(end)[3]);
        writer.close();
    }

    public static void setFileName() throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        fileName = reader.readLine();
        reader.close();
    }

    public static void readFile() throws IOException
    {
        BufferedReader reader = new BufferedReader(new FileReader(fileName));

        while (reader.ready())
        {
            String nextLine = reader.readLine();
            list.add(getProductInfo(nextLine));
        }

        reader.close();
    }

    public static String getNextId() throws IOException
    {
        int maxId = 0;
        for (String[] strings : list)
        {
            int id = Integer.parseInt(strings[0].trim());
            if (id > maxId)
            {
                maxId = id;
            }
        }
        return String.format("%-" + idLength + "s", (maxId + 1));
    }

    public static String getId(String s)
    {
        return s.substring(0, idLength);
    }


    public static String getProductName(String s)
    {
        return s.substring(idLength, idLength + productNameLength);
    }

    public static String getPrice(String s)
    {
        return s.substring(idLength + productNameLength, idLength + productNameLength + priceLength);
    }

    public static String getQuantity(String s)
    {
        return s.substring(idLength + productNameLength + priceLength);
    }

    public static String[] getProductInfo(String s)
    {
        return new String[] {String.valueOf(getId(s)), getProductName(s), getPrice(s), getQuantity(s)};
    }
}
  • ,

Отсутствие синхронизации решенных задач между компьютерами в JavaRush 2.0

При переходе на JavaRush 2.0, причем не сразу а видимо с одним из обновлений или даже первым апдейтом, перестали синхронизироваться решенные задачи с разных компьютеров. Т.е. я решаю задачи с компов дома и в офисе, и что же я вижу? В офисе мне предлагается решать задачи которые уже давно решены дома. Либо может быть как то так случилось что мой комп в офисе вернулся на JavaRush 1.0 когда он снова стал доступен. Как проверить?
  • ,

task15.task1516

Значения по-умолчанию
1. Создать 7 public полей класса. Убедитесь, что они инициализируются дефолтными значениями.
intVar типа int
doubleVar типа double
DoubleVar типа Double
booleanVar типа boolean
ObjectVar типа Object
ExceptionVar типа Exception
StringVar типа String
2. В методе main вывести их значения в заданном порядке.
package com.javarush.task.task15.task1516;

/* 
Значения по-умолчанию
*/

public class Solution {
    public static int intVar ;//типа int
    public static double doubleVar; //типа double
    public static Double DoubleVar;// типа Double
    public static boolean booleanVar;// типа boolean
    public static Object ObjectVar;// типа Object
    public static Exception ExceptionVar;// типа Exception
    public static String StringVar;// типа String
    public static void main(String[] args) {
        System.out.println(intVar);
        System.out.println(doubleVar);
        System.out.println(DoubleVar);
        System.out.println(booleanVar);
        System.out.println(ObjectVar);
        System.out.println(ExceptionVar);
        System.out.println(StringVar);
    }
}


Задача не прошла тестирование!

Метод main должен выводить значения полей на экран(каждое с новой строки или через пробел) в заданном порядке. Инициализировать переменные не нужно.
  • ,

20+ лет спустя или Я все-таки стал им!

20+ лет спустя или Я все-таки стал им!

Приветствую, уважаемые коллеги! Здесь, на javarush, периодически попадаются вопросы типа «мне уже 30 (35, 40 и т. д.) — смогу ли я стать java-разработчиком?». В свое время «success stories» с этого уважаемого сайта мне очень помогли развеять собственные сомнения и укрепить уверенность в правильности выбора. И сейчас я, наконец, решился рассказать вам историю «бородатого эникея», который «20+ лет спустя» и довольно-таки необычным путем, но все же реализовал свою детскую мечту. Осторожно, под катом много букв!
  • ,

Мне интересно один ли я такой,что не понимаю некоторые темы,и если нет то как вы с этим справляетесь?!

Путаница в голове из-за непонятых тем.