Anonymní profil Majkl – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Majkl – Programujte.comAnonymní profil Majkl – Programujte.com

 

Příspěvky odeslané z IP adresy 188.75.176.–

Majk
Java › Vložení X - rozměrného pole…
5. 1. 2017   #214384

Zdravím, nevěděl by někdo jak vložit objekt typu X - rozměrné pole do položky java.lang.reflect.Field

Problém:

Načtu si z jedné proměnné třeba typu Object[] její hodnotu pomocí reflexe:

Object var = someField.get(instance);

a chci jí vložit do jiné proměnné stejného typu:

differentField.set(instance, var);

ale vždy dostanu výjimku IllegalArgumentException Cannot set ...

A nevím co s tím? obě proměnné jsou veřejné, nejsou statické ani final, tudíž není třeba setAccesible, apod. a o obou proměnných je známo, že jsou stejného datového typu
hodnotu získám v počátku, mohu tím polem coby získanou hodnotu iterovat, ... ale jakmile ho chci vložit do druhé proměnné vždy vypadne výjimka a nevím čím by to mohlo být, zda se s polem pracuje jinak, nebráním se použití knihoven, či jiných postupů, ale potřebuji to vyřešit.

Stejné to je i když vytvořím dvě instance jedné třídy a jen chci vzít hodnotu typu pole z jedné proměnné v jedné instanci a vložit tuto hodnotu do stejné proměnné v druhé instanci třídy???

Zkoušel jsem využít knihovnu Bean Utils, ale také bez úspěchu.

Snad mi tu někdo poradí?

Majk
Java › Opakované načtení souboru .c…
27. 12. 2016   #214252

#2 ondrej39
Píšu aplikaci, kde se graficky znázorňují vytvořené - naplněné vztahy mezi instancemi, vztahy, jako jsou například asociace, agregace, apod.

Tj. že se třeba pomocí setrů nastaví nějaká proměnná v instanci třídy, tak se mezi příslušnými instancemi vytvoří nějaká vazba - hrana v grafu, která to znázorňuje a zdrojový kód těchto tříd lze dále upravovat, po té je třeba tyto třídy znovu zkompilovat a načíst.

Alespoň takový je princip aplikace, nebo mám nějaké postupy rozebrat?

Majk
Java › Opakované načtení souboru .c…
26. 12. 2016   #214243

Ahoj všichni, řeším nemalý problém, už delší dobu se snažím přijít na to, jak by šla pomocí reflexe, neboli za běhu aplikace (napsané v Javě) načíst jedna zkompilovaná třída vícekrát, a nemohu na to přijít, je tu někdo kdo by si s tím věděl rady?

Konkrétní příklad:

Vytvořím a libovolně v aplikaci zedituji třídu, zkompiluji jí a načtu pomocí ClassLoaderu, dosud vše OK, ale když tuto třídu opět jakkoli zedituji, znovu zkompiluji a opět načtu pomocí ClassLoaderu, tak se mi načte ta původní třída, resp. soubor .class, což je ale špatně, potřebuji načíst tu aktuální.

Vím, že bych měl pokaždé vytvořit novou instanci ClassLoaderu s konkrétní URL, protože si JVM drží "takto načtená data", jenže když to udělám, pak když chci zavolat metodu v jedné třídě,  jejímž parametrem je instance druhé třídy, tak mi to pokaždé vyhodí vyjímku: java.lang.IllegalArgumentException: argument type mismatch a nevím proč.

Například:

třída X má metodu jejímž parametrem je instance třídy Y:

public class X {

public void someName(Y y) {...}

}

public class Y {...}

Jak jsem již zmínil výše, pomocí jednoho ClassLoaderu si načtu obě zkompilované třídy X a Y vytvořím instance obou tříd a zavolám metodu someName nad instancí X jejímž parametrem je instance vytvořená instance třídy Y, to funguje v pořádku, ale když nyní provedu nějaké úpravy třeba ve třídě Y a znovu ji zkompiluji, načtu pomocí stejného ClassLoaderu, tak se mi načte pořád ta původní třída, resp. soubor .class zkompilované třídy Y, což nechci, potřebuji tu aktuální a nevím jak na to?

Dále pokud použiji pro výše zmíněné načítání souborů .class odlišné ClassLoadery, resp. jeden ClassLoader pro jedno načtení třídy, tak mi při stejném postupu vytvoření instancí a zavolání metody vyskočí zmíněná vyjímka:  IllegalArgumentException a opět nevím proč tomu tak je, případně jak to vyřešit?

tak vyjímka vyskočí na řádku s kódem:

method_someName.invoke(instanceX, instanceY);

- ani metoda, ani jeden z parametrů neni null, a vše je správného typu včetně instancí, jedna je: X@xxx a druhá Y@xxxx, apod. tak nevím co s tím dál?

Pro načítání zkompilované - přeložené třídy používám následující kód:


ClassLoader cl = new UrlClassLoader(new URL[]{pathToClassAsUrl});

Class<?> compiledClass = cl.loadClass(className);

Potřebuji tedy přijít na to, jak využít jeden classLoader, případně něco, jak bych mohl pokaždé načíst ! Aktuální ! soubor - přeloženou třídu typu .class do proměnné typu java.lang.Class pro další manipulaci a aby takto načtené třídy neměly po vytvoření jejich instanci a zavolání metod mezi sebou zmíněné problémy u předávání referencí v metodách, apod.

Předem díky za rady a ochotu s pomocí.

Miki
Java › jak zkompilovat javovskou tř…
21. 7. 2016   #212053

Ahoj, mohl by mi někdo poradit, jak bych mohl zkompilovat Javovskou třídu za běhu aplikace v Javě 8?

Zkoušel jsem postupy na následujících odkazech ale bez úspěchu, tak bych potřeboval trochu nasměrovat, jestli existuje například nějaká knihovna nebo lepší postup jak toho dosáhnout?

http://java-bytes.blogspot.cz/2012/03/compile-java-files-at-runtime.html

https://www.javacodegeeks.com/2015/09/java-compiler-api.html

Díky moc.

Majkl
Java › RSyntaxTextArea code folding
21. 7. 2016   #212051

Zdravím všechny,

mohl by mi někdo pomoci zprovoznit zvýrazňování chyb v komponentě RSyntaxTextArea?

Použil jsem následující kód, ale nehlásí mi to žádné chyby a nefunguje to???


File zip = new File("lenglish_dic.zip");

English SpellingParser parser = SpellingParser.createEnglishSpellingParser(zip, true); textArea.addParser(parser);
 

Díky.

Miki
Java › Java syntax checking
13. 7. 2016   #211890

#2 Kit
To souhlasím, pokud někdo znáte nějaký editor (např  v podobně knihovny), který by se dal aplikovat do Javovského projektu, určitě by mi to usnadnilo práci, a pokud něco takového znáte, určitě bych to vyzkoušel.

Jen tam mimochodem, tímto, že si zkouším ten editor, jsem si akorát chtěl prohloubit znalosti Javy, regulárních výrazů, poději reflexe (až budu třídu spouštět), apod.

Ale jak jsem výše zmínil pokud znáte něco, co bych se dalo aplikovat do Javovského projektu, jako "editor zdrojového kódu", určitě se rád poučím.

Díky moc.

Miki
Java › Java syntax checking
12. 7. 2016   #211875

Dobrý den,

    zkouším si napsat něco jako editor zdrojové kódu jazyka Java a chtěl bych doplnit i zvýrazňování chyb v syntaxi a kompilaci, jenže se mi nedaří najít nějaké knihovny či nástroje, tak bych se chtěl zeptat, zda někdo nevíte, jestli existuje nějaká knihovna, která dokáže v textu (zdrojovém kódu) vyhledat chyby a nějakým způsobem je zvýraznit(např označit řádek či podtrhnout chybnou část, apod.)? A dále nějakou knihovnu nebo něco čím by se dala zkompilovat třída (napsaná v tomto editoru) před vytvořením její instance?

Používám Eclipse Mars, a "tento editor" je v podstatě úprava komponenty JtextArea.

Zkoušel jsem například RSyntaxTextArea, ale tam se mi nepodařilo zprovoznit zvýrazňování chyb, tak pokud máte někdo nějaké nápady, jak to napravit, např konkrétní ukázku kódu, nebo použít něco jiného ???

Dále jsem na kompilaci zkoušel postup na následujícím odkazu + nějaké úpravy, ale bohužel bez úspěchu, tak ocením každou radu.

http://www.java2s.com/Code/Java/JDK-6/CompileaJavafilewithJavaCompiler.htm

Díky moc.

Majk
Java › UML to Java code & Java code…
30. 6. 2016   #211750

Dobrý den,

   chtěl bych si udělat menší aplikaci, ve které si bude moci uživatel vytvářet klasické javovské třídy se vztahy mezi nimi (+ k ním další věci, konstruktory, přístupové metody, dědičnost ...) v podobně UML diagramů (Class diagram).

V okně aplikace by byla nějaká základní tlačítka pro označení jakou třídu che uživatel přidat (Interface, abstr. třídu,...) a vedle by byla například JPanel, ve kterém by tyto třídy byly reprezentovány zmíněným "Class diagramem". 

Pro tuto reprezentaci hledám (bohužel neúspěšně) různé knihovny, hledám nějakou knihovnu, která nabízí např. nějaký editor, který se přidá do Jpanelu a v něm lze editovat třídy a nabízí i z vytvořené třídy vygenerovat zdrojový kód v Javě (reverse engineering), se kterým by šlo dále pracovat např v nějakém dialogu.

Našel jsem různé nástroje, např: ObjectAid Uml, euml2, EMF, ArgoUml, Jupe, UML Designer a spoustu dalších, jenže všechno to jsou pouze pluginy pro editaci tříd v eclipse, či jiném SW a ne pro v nich vytvořené aplikace (alespoň nevím jak).

Stručně řečeno, hledám knihovnu, která obsahuje některé funkce jako EMF (eclipse modeling framework) pro editaci tříd a jejich vlastností (atributy a metody) + vazby mezi třídami (dědičnost, multplicita, apod.) a dá se použít v vytvořené aplikaci, tak se na Vás obracím s prosbou o pomoc, zda něco takového vůbec existuje, případně zda by jste mi poradili jak by to šlo vyřešit.

Díky moc.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý