#programowanie #java #it

Cześć mirki, ponieważ w pracy coraz częściej przydają mi się umiejętności programistyczne postanowiłem się trochę podszkolić w zakresie Javy. Jakieś podstawy programowania posiadam, w pracy dosyć często piszę skrypty w #groovy do #jira, ale brak mi umiejętności programowania obiektowego. Chciałem upiec dwie pieczenie na jednym ogniu i przy okazji lepiej ogarnąć sobie REST API Jiry, dlatego postanowiłem napisać coś na wzór prostego klienta do tejże aplikacji. I tu zaczynają się schody. Chciałem od początku pisać po bożemu, dlatego każda czynność jak logowanie, pobierania info o zgłoszeniu itp, jest wykonywana przez inną klasę ( a może nie robię po bożemu :D ? ). Ale do sedna, na czym polega mój problem. Na początku wywołuję metody setUsername i setPassword z klasy Login, następnie w oparciu o pobrane parametry uwierzytelniam użytkownika z wykorzystaniem HttpUrlConnection (wykorzystuję metody getUsername i getPassword z klasy Login), jeśli podam poprawne dane logowanie zostaje wyświetlone menu wyboru. Po wybraniu 1 (wyświetl zgłoszenie) powinno zwrócić stringa z informacjami w zgłoszeniu (potem chcę to wykorzystać do dalszej obróbki), w tym celu wykorzystuję metody setOutput i getOutput z klasy RestApiGet, w celu uwierzytelnienia wykorzystuje getPassword i getUsername z klasy Login. Wartości zostały ustawione wcześniej podczas zalogowania, więc powinny być dostępne, jednak mimo to cały czas metody zwracają null, przez co nie mogę się nawet uwierzytelnić.
Poniżej zamieszczam kod źródłowy, liczę na konstruktywną krtykę i pomoc ewentualnie zagonienie do kopania rowów zamiast zabawy w #it.
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bladykiel: on chce konwertować z formatu na format.

String dateInOldFormat = "2019-01-13";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateInOldFormat);
String dateReformatted = new SimpleDateFormat("dd/MMM/yy").format(date);
assertEquals("13/Jan/19", dateReformatted);
  • Odpowiedz
@beethoven: W sumie nie napisał w jaki sposób ma zapisaną datę.
Równie dobrze może to być String, Date, LocalDate czy coś innego.
Wdaje mi się, że samo "SimpleDateFormat("dd/MMM/yy")" powinno pomóc mu w rozwiązaniu problemu :)
  • Odpowiedz
Witam, muszę wyświetlić dane w polu #jira z wystawionego widoku. W tym celu wykorzystuje poniższy skrypt. Problem w tym że wyświetlany jest tylko jeden wiersz zamiast 2 i wiecej. Jest na sali jakiś miras który pomoże rozwiązać ten problem?
httpsstebin.com/q53zBQSu
#programowanie #java #groovy #it #it
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LoginZeStali: Przyznam nie jestem programista więc taki błąd mogłem popełnic. Masz sposób na tworzenie dynamicznej tabeli w HTML, tak żeby liczba wierszy w niej = liczba wierszy zwróconych przez zapytanie
  • Odpowiedz
Mam problem z metaspace w mojej aplikacji. Wraz ze wzrostem użytego miejsca w metaspace wzrasta czas odpowiedzi mojego API. Spotkał się ktoś z czymś takim?
Dokładniejsze informacje zawarłem tutaj:
https://stackoverflow.com/questions/52967724/applications-is-slowing-with-metaspace-growth
Przy okazji proszę o "zaplusowanie" mojego tematu na stackoverflow.

#java #metaspace #groovy #grails #programowanie
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chcę przeprowadzić test na kodzie poniżej:

import static org.junit.Assert.*;

public class PartTimeEmployeeTest extends Object {

PartTimeEmployee
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@69inch: A jak tworzyłeś klasę testu ? Poprzez code - create test, czy po prostu dodałeś klasę Javową ? Możliwe, że nie jest ona oznaczona jako klasa testowa, inna sprawa, to "extends Object" jest zbędne - każda klasa dzidziczy po klasie Object :)
  • Odpowiedz
@kuba25800: W klasie PartTimeEmployee po kliknięciu na metodę o tej nazwie wybrałem Alt+Enter i tam z listy wybrałem Create Test. "Extends Object" pojawiło się automatycznie.
  • Odpowiedz
Mam plik w którym jest lista metod z parametrami, np:

print("Test")

println("Test2")


I teraz wczytuje zawartość pliku do zmiennej "metody" i chciałbym wykonać je na konkretnym obiekcie, coś w stylu.
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czołem !
Mam pewną rozterkę. Mianowicie potrzebuję się dowiedzieć jakie profity byłby z przejścia z pisania skryptów w PowerShell'u na pisanie w Grovvy. Głównie do automatyzacji pewnych czynności. Jako, że trochę liznąłem Javy, składnia języka Groovy jest dla mnie bardziej przejrzysta i czytelna.
Co Wy sądzicie na ten temat?
Czy są jakieś szczególne plusy, lub nie ma ich w ogóle?

Dzięki za pomoc ! Miłego weekendu ! ( ͡° ͜ʖ
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TomaszWKS: W jakim sensie dynamiczny? W sensie, że można zadeklarowac wartości domyślne? W Javie się nie da. W Kotlinie się da. Najbliższym co spełnia podobne kryteria w Javie może być Builder Pattern.
  • Odpowiedz
Ktoś pracuje gdzieś na #emigracja jako #programista15k albo mniej? Szukam jakiejś firmy z zagranicy chętnej mnie przyjąć do pracy, najlepiej zdalnie, ale jak coś mogę się przesiedlić, kraj w sumie jak narazie różnicy nie robi. Ogólnie zajmuję się 3 lata #frontend i #grails #groovy, czyli poniekąd też #java.

#programowanie #informatyka #pytanie #
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Java 8. Sytuacja wymaga użycia java.util.Date:

Date testDate = new Date(2017,9,19);
System.out.println(testDate);
System.out.println(testDate.getYear());

Do
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TomaszWKS: Czytaj dokumentację. java.util.Date jest p------e i nie powinno się go stosować chyba że naprawdę nie ma innej opcji.

Parameters:

year - the year minus 1900.

month - the month between 0-11.

date - the day of the month between 1-31.
  • Odpowiedz
@TomaszWKS: Skoro napisałeś, to czemu pytasz o przyczyny tego, że działa jak w dokumentacji?
Wiesz że jest deprecated, ale i tak używasz i narzekasz że działa jak w dokumentacji? Tak to trochę brzmi.
  • Odpowiedz
Stworzyłem klasę Dictionary. W projekcie bezpośrednio nie ma problemu. Problem pojawia się przy doczytywaniu zewnętrznych klas z plików za pomocą GroovyClassLoader bo okazało się, że taka klasa już istnieje w bibliotece standardowej i dostaję błąd: Cannot cast object with class 'Dictionary' to class 'java.util.Dictionary'

Pewnie podział mojego kodu na pakiety rozwiązałby problem bo przy deklaracji byłaby podana klasa wraz z pakietem. Podział na pakiety planuję wkrótce, ale póki co jeszcze go nie
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jaką polecacie bibliotekę do operowania na arkuszach .xls?

Potrzebuję zrobić coś takiego. Załóżmy, że mamy 3 arkusze w jednym pliku .xls. W pierwszym są dane wejściowe, w drugim dane wynikowe, a trzeci jest pomocniczy (korzysta z niego drugi). Arkusze są tak zorganizowane, że zmieniając wartości na pierwszym arkuszu, zmieniają się dane na drugim (formuły Excela). Teraz ja potrzebuję zmienić wartości na pierwszym arkuszu znając adresy komórek podlegających zmianie (np. B3, D15 itd.)
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dobra, krótka piłka. Mam pewien dziwny projekt . Klasa z metodą .main() to Groovy. Cała reszta to Java. Pisane w Eclipse z odpowiednią wtyczką do Groovy. W Eclipse się kompiluje, wykonuje i co tylko chcecie. Zrobiłem z tego .jar. Teraz w CMD wpisuję:

java -jar XYZ.jar

I dostaję:

Error:
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cały program pisany jest w Javie, tylko klasa zawierająca .main() to Groovy. Ewentualnie mogę stworzyć więcej klas Groovy na potrzeby rozwiązania poniższego problemu.

Potrzebuję korzystać z klas, które nie znajdują się w projekcie - póki co program uruchamiany jest w Eclipse, finalnie będzie też potrzeba rekompilacji klasy main i odpalania programu z CMD. Te klasy, które mają zostać doczytane to również Groovy, a ścieżki do nich MUSZĄ być zapisane jako zmienne/stałe w metodzie .main() programu. Bezpośrednio w tej metodzie również będą te doczytane klasy wykorzystywane.

Sam program jak i doczytywane klasy to oddzielne byty ale program musi te doczytane klasy przekompilować. Ba, wcześniej musi je nawet tymczasowo zmodyfikować (po zakończeniu działania programu klasa musi być identyczna jak przed uruchomieniem). Ten program ma za zadanie symulować działanie pewnej aplikacji, która (w uproszczeniu) korzysta z tych klas, które ja potrzebuję doczytać. W skrócie mój program ma służyć do testowania tychże klas poprzez pisanie kodu/testów w mojej metodzie .main(). Z tym, że w tych klasach brakuje niezbędnych pól. Nawet po dołączeniu takiej klasy do projektu, program wysypuje się w jej konstruktorze - No such property: X for class: Y
Normalnie w aplikacji konstruktor wywoływany jest tak samo. Nie wiem jak to jest zrobione, że uruchomiona aplikacja te brakujące pola widzi i obiekt tej klasy działa na nich. Trzeba jeszcze dodać, że te brakujące pola w oryginalnej aplikacji są innej klasy niż te, które ja próbuję przekazać do konstruktora (ale to nie z tego powodu się sypie - tych pól w klasie w ogóle nie ma). Te obiekty które przekazuję do konstruktora są mojej własnej klasy i mają za zadanie symulować działanie oryginalnych. Po dodaniu do klasy odpowiedniego pola które jest typu mojej klasy, program normalnie działa. Poniżej fragment z
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach