Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Как правильно переделать код  [new]
skyboyy
Member

Откуда:
Сообщений: 61
Я вывел в виде джейсона информацию о домене

@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public Response whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return new Response(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        sb
                .append("Domain Name............: ").append(domainInfo.getDomainName()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Organization Using Domain Name").append(System.lineSeparator())
                .append("Name...................: ").append(domainInfo.getName()).append(System.lineSeparator())
                .append("Organization Name......: ").append(domainInfo.getOrganizationName()).append(System.lineSeparator())
                .append("Street Address.........: ").append(domainInfo.getStreetAddress()).append(System.lineSeparator())
                .append("City...................: ").append(domainInfo.getCity()).append(System.lineSeparator())
                .append("State..................: ").append(domainInfo.getState()).append(System.lineSeparator())
                .append("Postal Code............: ").append(domainInfo.getPostalCode()).append(System.lineSeparator())
                .append("Country................: ").append(domainInfo.getCountry()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Administrative Contact/Agent").append(System.lineSeparator())
                .append("Nick Handle............: ").append(contactInfo.getHandle()).append(System.lineSeparator())
                .append("Phone Number...........: ").append(contactInfo.getVoice()).append(System.lineSeparator())
                .append("Fax....................: ").append(contactInfo.getFax()).append(System.lineSeparator())
                .append("Email Address..........: ").append(contactInfo.getEmail()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Nameserver in listed order").append(System.lineSeparator())
                .append(System.lineSeparator());

        hostInfo.forEach(hInfo -> sb
                .append("Server.................: ").append(hInfo.getName()).append(System.lineSeparator())
                .append("Ip address.............: ").append(hInfo.getIpaddr()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        sb.append(System.lineSeparator());

        statusInfo.forEach(sInfo -> sb
                .append("Domain created: ").append(sInfo.getCreated()).append(System.lineSeparator())
                .append("Last modified: ").append(sInfo.getUpdated()).append(System.lineSeparator())
                .append("Domain status: ").append(sInfo.getStatus()).append(System.lineSeparator())
                .append("Registrar created: ").append(sInfo.getRegistarcr()).append(System.lineSeparator())
                .append("Current Registrar: ").append(sInfo.getRegistrar()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        return sb.toString();
    }
}


Результат
>curl -H "Content-Type: application/json" -d "{\"domain\":\"post.kz\"}" localhost:8080/api/whois
{"domainInfo":{"domainName":"post.kz","name":"AO Kazpochta","organizationName":"AO Kazpochta","streetAddress":"ul. Auezova,d. 13","city":"Astana","state":"Astana","postalCode":"010000","country":"KZ"},"contactInfo":{"handle":"HOST-000-015851","name":"post.kz","voice":"7-702-409 07 40","fax":"","email":"kazpost@post.kz"},"hostInfo":[{"oid":"10377785","name":"ns.telecom.kz","domain":"telecom.kz","ipaddr":"92.46.42.148","pver":"v4"},{"oid":"10377961","name":"ns.kazpost.kz","domain":"kazpost.kz","ipaddr":"193.193.247.146","pver":"v4"}],"statusInfo":[{"created":"2002-12-13 16:11:43","updated":"2016-04-19 11:27:11","status":"KAZNIC","registarcr":"HOST.KZ","registrar":"clientTransferProhibited"}]}



Но мне сказали там код надо переделать таким образом
@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public Response whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return new Response(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        
        sb.append("{");
        sb.append(""/domain:"/");
        sb.append(domai
                nInfo.getDomainName());
        sb.append(",");
        //Как можно завершить этот код чтобы он выводил инфу
1 ноя 19, 08:17    [22007688]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
skyboyy,

Прошу прощения.
Зачем Вам функция "private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo)"?!
1 ноя 19, 08:56    [22007720]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
skyboyy
Member

Откуда:
Сообщений: 61
mad_nazgul,

Он помогает брать инфу о домене
1 ноя 19, 09:07    [22007728]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4915
skyboyy
mad_nazgul,

Он помогает брать инфу о домене


Где?
Просто не могу найти вызов этой функции.
1 ноя 19, 09:39    [22007753]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
skyboyy
Я вывел в виде джейсона информацию о домене

@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public Response whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return new Response(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        sb
                .append("Domain Name............: ").append(domainInfo.getDomainName()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Organization Using Domain Name").append(System.lineSeparator())
                .append("Name...................: ").append(domainInfo.getName()).append(System.lineSeparator())
                .append("Organization Name......: ").append(domainInfo.getOrganizationName()).append(System.lineSeparator())
                .append("Street Address.........: ").append(domainInfo.getStreetAddress()).append(System.lineSeparator())
                .append("City...................: ").append(domainInfo.getCity()).append(System.lineSeparator())
                .append("State..................: ").append(domainInfo.getState()).append(System.lineSeparator())
                .append("Postal Code............: ").append(domainInfo.getPostalCode()).append(System.lineSeparator())
                .append("Country................: ").append(domainInfo.getCountry()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Administrative Contact/Agent").append(System.lineSeparator())
                .append("Nick Handle............: ").append(contactInfo.getHandle()).append(System.lineSeparator())
                .append("Phone Number...........: ").append(contactInfo.getVoice()).append(System.lineSeparator())
                .append("Fax....................: ").append(contactInfo.getFax()).append(System.lineSeparator())
                .append("Email Address..........: ").append(contactInfo.getEmail()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Nameserver in listed order").append(System.lineSeparator())
                .append(System.lineSeparator());

        hostInfo.forEach(hInfo -> sb
                .append("Server.................: ").append(hInfo.getName()).append(System.lineSeparator())
                .append("Ip address.............: ").append(hInfo.getIpaddr()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        sb.append(System.lineSeparator());

        statusInfo.forEach(sInfo -> sb
                .append("Domain created: ").append(sInfo.getCreated()).append(System.lineSeparator())
                .append("Last modified: ").append(sInfo.getUpdated()).append(System.lineSeparator())
                .append("Domain status: ").append(sInfo.getStatus()).append(System.lineSeparator())
                .append("Registrar created: ").append(sInfo.getRegistarcr()).append(System.lineSeparator())
                .append("Current Registrar: ").append(sInfo.getRegistrar()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        return sb.toString();
    }
}


Результат
>curl -H "Content-Type: application/json" -d "{\"domain\":\"post.kz\"}" localhost:8080/api/whois
{"domainInfo":{"domainName":"post.kz","name":"AO Kazpochta","organizationName":"AO Kazpochta","streetAddress":"ul. Auezova,d. 13","city":"Astana","state":"Astana","postalCode":"010000","country":"KZ"},"contactInfo":{"handle":"HOST-000-015851","name":"post.kz","voice":"7-702-409 07 40","fax":"","email":"kazpost@post.kz"},"hostInfo":[{"oid":"10377785","name":"ns.telecom.kz","domain":"telecom.kz","ipaddr":"92.46.42.148","pver":"v4"},{"oid":"10377961","name":"ns.kazpost.kz","domain":"kazpost.kz","ipaddr":"193.193.247.146","pver":"v4"}],"statusInfo":[{"created":"2002-12-13 16:11:43","updated":"2016-04-19 11:27:11","status":"KAZNIC","registarcr":"HOST.KZ","registrar":"clientTransferProhibited"}]}



Но мне сказали там код надо переделать таким образом
@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public Response whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return new Response(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        
        sb.append("{");
        sb.append(""/domain:"/");
        sb.append(domai
                nInfo.getDomainName());
        sb.append(",");
        //Как можно завершить этот код чтобы он выводил инфу

что за рукожоп тебе это сказал-представленный выше код-повод на выход из фирмы.а если тебя с помощью него обучают я бы сам оттуда ушел.
1 ноя 19, 10:52    [22007847]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
Да ёпть)) Сделайте DTO'ошку включите туда
1 ноя 19, 11:01    [22007860]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
Блин)) ctrl+Enter))
включите туда DomainInfo domainInfo, ContactInfo contactInfo
и отдавайте это в респонсе, всё )
спринг сам поля разрулит и положит их в json
1 ноя 19, 11:02    [22007863]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
+ Но мне сказали там код надо переделать таким образом
skyboyy

Но мне сказали там код надо переделать таким образом
@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public Response whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return new Response(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        
        sb.append("{");
        sb.append(""/domain:"/");
        sb.append(domai
                nInfo.getDomainName());
        sb.append(",");
        //Как можно завершить этот код чтобы он выводил инфу

Во-первых, репозитории в контроллер не надо класть, нужно класть сюда сервисы, которые работают с этими репозитория.
Причем интерфейсы, а не реализации.
    private DomainRepository domainRepository; // это должен быть сервис
    private ContactsRepository contactsRepository;// это должен быть сервис
    private HostRepository hostRepository;// это должен быть сервис
    private StatusRepository statusRepository;// это должен быть сервис


Во-вторых, все эти сервисы отдельно автоварить не нужно. Нужно добавить их так как указано выше, а затем добавить или метод или коструктор и автоварить его. Идея должна ругаться на это, можно к ней прислушиваться)

В-третьих, уже увидел, что вы добавили Response что-то аля DTO, как временный вариант, конечно, можно её сюда но по факту делаем сервис и возвращаем эту DTO из сервиса, который все эти данные соберет.

Можно, конечно, подробнее объяснить, но это долго. Думаю, на этапе создания сервисов для этих репозиториев, будет понятно, какой сервис создать для Response и как заавтоварить в него те самые сервисы.
1 ноя 19, 11:22    [22007890]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
Nixic,это точно,дефолтный репозиторий в контроллере
ведь самое смешное - кто то ему же дал этот кусок кода как учебный-тоесть там учитель судя по всему ,котрого самого учить надо

пс.Автор я тебе уже писал - изучи JAVA CORE ,JAVA ADVANCED ,EE и только потом пробуй на зуб спринг и рест сервисы

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

и ведь тебе уже тысячу раз ответили делай DTO все остальное спринг сделает сам
1 ноя 19, 11:47    [22007934]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
skyboyy
Member

Откуда:
Сообщений: 61
asv79,

Просто я сам запутался, просят одну потом другое, походу задания меняют направление
1 ноя 19, 11:59    [22007952]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
skyboyy
Member

Откуда:
Сообщений: 61
skyboyy,
сделал
package ru.whois.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.whois.model.*;
import ru.whois.repository.ContactsRepository;
import ru.whois.repository.DomainRepository;
import ru.whois.repository.HostRepository;
import ru.whois.repository.StatusRepository;

import java.util.List;

@RestController
@RequestMapping("api/whois")
public class DomainWhoIsController {

    @Autowired
    DomainRepository domainRepository;

    @Autowired
    ContactsRepository contactsRepository;

    @Autowired
    HostRepository hostRepository;

    @Autowired
    StatusRepository statusRepository;

    @PostMapping
    public String whoIs(@RequestBody Request request) {
        System.out.println(request);
        DomainInfo domainInfo = domainRepository.findDomainInfo(request.getDomain());
        ContactInfo contactInfo = contactsRepository.findContactInfo(request.getDomain());
        List<HostInfo> hostInfo = hostRepository.findHostInfo(request.getDomain());
        List<StatusInfo> statusInfo = statusRepository.findStatusInfo(request.getDomain());

        return report(domainInfo, contactInfo, hostInfo, statusInfo);
    }

    private String report(DomainInfo domainInfo, ContactInfo contactInfo, List<HostInfo> hostInfo, List<StatusInfo> statusInfo) {
        StringBuffer sb = new StringBuffer();
        sb
                .append("{");

        sb
                .append("\"domainInfo\":{")
                .append("\"domainName\":\"").append(domainInfo.getDomainName()).append("\",")
                .append("\"name\":\"").append(domainInfo.getName()).append("\",")
                .append("\"organizationName\":\"").append(domainInfo.getOrganizationName()).append("\",")
                .append("\"streetAddress\":\"").append(domainInfo.getStreetAddress()).append("\",")
                .append("\"city\":\"").append(domainInfo.getCity()).append("\",")
                .append("\"state\":\"").append(domainInfo.getState()).append("\",")
                .append("\"postalCode\":\"").append(domainInfo.getPostalCode()).append("\",")
                .append("\"country\":\"").append(domainInfo.getCountry()).append("\"")
                .append("}");

        sb.append(",\"contactInfo\":{");

        sb
                .append("\"handle\":\"").append(contactInfo.getHandle()).append("\",")
                .append("\"voice\":\"").append(contactInfo.getVoice()).append("\",")
                .append("\"fax\":\"").append(contactInfo.getFax()).append("\",")
                .append("\"email\":\"").append(contactInfo.getEmail()).append("\"")
                .append("}");

        sb.append(",\"hostInfo\":{");
        hostInfo.forEach(hInfo -> sb
                .append("[")
                .append("\"oid\":\"").append(hInfo.getOid()).append("\",")
                .append("\"name\":\"").append(hInfo.getName()).append("\",")
                .append("\"domain\":\"").append(hInfo.getDomain()).append("\",")
                .append("\"ipaddr\":\"").append(hInfo.getIpaddr()).append("\",")
                .append("\"pver\":\"").append(hInfo.getPver()).append("\"")
                .append("],")
        );
        sb.append("}");

        sb.append(",\"statusInfo\":{");
        statusInfo.forEach(sInfo -> sb
                .append("[")
                .append("\"created\":\"").append(sInfo.getCreated()).append("\",")
                .append("\"updated\":\"").append(sInfo.getUpdated()).append("\",")
                .append("\"status\":\"").append(sInfo.getStatus()).append("\",")
                .append("\"registarcr\":\"").append(sInfo.getRegistarcr()).append("\",")
                .append("\"registrar\":\"").append(sInfo.getRegistrar()).append("\"")
                .append("],")
        );
        sb.append("}");

        sb.append("}");

        return sb.toString();
    }
}
1 ноя 19, 14:46    [22008161]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Про Velocity будем говорить? Не?
1 ноя 19, 14:52    [22008169]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
Ну, йоперный театр! убирай(те) репозитории из контроллера

В нем должны быть сервисы, которые возвращают объект для отправки клиенту, всё.
Ни репозиториев, ни мапперов, ни конвертеров, ничего лишнего, если это есть, то создаем сервис и кидаем всё это туда
И тем более никаких
private String report(...) {
over_dohrena_coda
}
методов.

А это что за дичь? Нечем заняться? Реально? :)) Вы зачем свой костыль делаете, если всё уже сделано
+
.append("\"name\":\"").append(domainInfo.getName()).append("\",")
.append("\"organizationName\":\"").append(domainInfo.getOrganizationName()).append("\",")
.append("\"streetAddress\":\"").append(domainInfo.getStreetAddress()).append("\",")
.append("\"city\":\"").append(domainInfo.getCity()).append("\",")
.append("\"state\":\"").append(domainInfo.getState()).append("\",")
.append("\"postalCode\":\"").append(domainInfo.getPostalCode()).append("\",")
.append("\"country\":\"").append(domainInfo.getCountry()).append("\"")
1 ноя 19, 14:52    [22008170]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
Я считаю дальнеешая помощь только усугубит ситуацию.
просто пойми со стороны опытных прогеров- ты выглядишь как 5 летний штангист,который пришел на чемпионат мира по штанге среди взрослых и пытается дернуть штангу 200 кг- а когда не получается -просит ему помочь окружающих -вот именно так ты сейчас выглядишь- это не твоя весовая категория .Твоя задача писать интрефейсы,их имплементации,пузырьковые сортировки и тд

Ну и мой искренний совет
Скачай книжки по java -первая которую ты должен прочитать это философия java,вторая Чистый код
третья -промышеленное программирование
четвертая спринг в дейтсвии
и только после этого приходи сюда за вопросами

попутно с чтением советую java rush
1 ноя 19, 15:12    [22008182]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
StringBuilder еще спрашивают на собесах хотя javac начиная там с 7 или с 8 уже умеет сам цепочку
конкатенаций пересобирать в неявный StringBuilder.

По данному конкретному кейсу не готов сказать. Но можно декомпилировать бинарь и посмотреть.

С чисто эстетической точки зрения "+" писать короче чем .append.
1 ноя 19, 15:16    [22008187]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
забыл ник
Member

Откуда:
Сообщений: 3038
mayton
StringBuilder еще спрашивают на собесах хотя javac начиная там с 7 или с 8 уже умеет сам цепочку
конкатенаций пересобирать в неявный StringBuilder.

По данному конкретному кейсу не готов сказать. Но можно декомпилировать бинарь и посмотреть.

С чисто эстетической точки зрения "+" писать короче чем .append.


скоро должны разродиться triple quotes, что тогда будут на собесах спрашивать, бедные?
1 ноя 19, 15:39    [22008220]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
+String interpolation. Уже давно ждут.

По барабану будет што Groovy что Java. Кстати вот многие строковые функции - must have.
И любой язык плавно и постепенно к ним приходит. Вот с операцией + конечно некрасиво вышло.
Математически некрасиво.
1 ноя 19, 15:57    [22008240]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1914
Мне лично из темы работы со строками вот этого не хватает в Jave порой. Ооочень редко надо и было бы удобно
https://stackoverflow.com/questions/51874352/template-literals-in-java
1 ноя 19, 16:07    [22008249]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
chpasha
Member

Откуда:
Сообщений: 8593
забыл ник
скоро должны разродиться triple quotes

разве не уже в sdk 13?
1 ноя 19, 16:07    [22008250]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Nixic, яж говорю String Interpolation

https://docs.scala-lang.org/overviews/core/string-interpolation.html

Штука мне помогла недавно когда надо было на 700 постгресовских табличек нагенерить триггеров для захвата событий.
Я кое-как склеил DDL скриптик за пол-дня. Делать тоже самое на Java.... это тоже самое что писать колбасу из append()
наподобие той что сделал автор топика.

Брр..
1 ноя 19, 16:19    [22008263]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
забыл ник
Member

Откуда:
Сообщений: 3038
chpasha
забыл ник
скоро должны разродиться triple quotes

разве не уже в sdk 13?

Я не слежу детально... в свободное время иногда почитываю. А паттерн матчинг тоже мимо?
1 ноя 19, 16:30    [22008276]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
По PHP соскучились)))
1 ноя 19, 16:34    [22008281]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
mayton
Nixic, яж говорю String Interpolation

https://docs.scala-lang.org/overviews/core/string-interpolation.html

Штука мне помогла недавно когда надо было на 700 постгресовских табличек нагенерить триггеров для захвата событий.
Я кое-как склеил DDL скриптик за пол-дня. Делать тоже самое на Java.... это тоже самое что писать колбасу из append()
наподобие той что сделал автор топика.

Брр..

да в скале это прекрасная штука. но эээ ты можешь юзать шаблонизаторы например ))

в скале вот не ясно можно сделать "hello $user"

а потом куда нибудь передать где оно интерполируется, вместо s"hello $user" это ж я так понимаю какой то типа объект или что то типа того. а не просто сахар
1 ноя 19, 17:10    [22008319]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно переделать код  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
andreykaT
mayton
Nixic, яж говорю String Interpolation

https://docs.scala-lang.org/overviews/core/string-interpolation.html

Штука мне помогла недавно когда надо было на 700 постгресовских табличек нагенерить триггеров для захвата событий.
Я кое-как склеил DDL скриптик за пол-дня. Делать тоже самое на Java.... это тоже самое что писать колбасу из append()
наподобие той что сделал автор топика.

Брр..

да в скале это прекрасная штука. но эээ ты можешь юзать шаблонизаторы например ))

в скале вот не ясно можно сделать "hello $user"

а потом куда нибудь передать где оно интерполируется, вместо s"hello $user" это ж я так понимаю какой то типа объект или что то типа того. а не просто сахар

В моём кейсе всё чики-пики.
1 ноя 19, 18:55    [22008410]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить