Diskuze: Převedení stringu na příklad
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj můžeš si vybrat .. budu listovat varianty od nejhorší, ale nejsnadnější k té nejtěžší ale nejlepší ... (bohužel nic jako skvělá a správná varianta, která bude snadná neexistuje)
1. od jdk verze 1.6 je přítomen Javascript engine... můžeš snadno tenhle engine nastartovat a předat mu String a pak na ten String zavolat Javascriptovou funkci eval()
asi takhle:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class Evaluator {
public static void main(String[] args) throws Exception{
ScriptEngineManager ScriptEnMan = new ScriptEngineManager();
ScriptEngine ScriptEn = ScriptEnMan.getEngineByName("JavaScript");
String expression = "20+3";
System.out.println(ScriptEn.eval(expression));
}
}
Špatný je, že pokud to chceš dát někam kde bude moc hodnotu Stringu měnit uživatel, tak bys na to měl rovnou zapomenout, ten javascriptovej eval() je masivní zlo!!!
2. Použij knihovnu co jsem našel na githubu https://github.com/…ewski/EvalEx
Šatný je, že pokud jsi začátečník, tak ti to dá zabrat, nebo spíš jen pokud jsi to ještě nikdy nedělal, naimportovat si knihovnu, projít dokumentaci, nevíš pořádně co se tam děje... no hlava ti půjde kolem
3. Pokud to poběží jen na jedné a neměnné architektuře, můžeš použít nástroje dostupné z terminálu...třeba bash na tohle má program, který můžeš pomocí process builderu zavolat, jméno neuvádím, pokud je to vážně to, pro co se rozhodneš progoogli si to dle potřeby...
Špatný je, že když ti to upgradujou, změní se chování programu, program bude nečekaně smazán, nebo odinstalován.. seš nahranej...teda tvůj program...a taky do toho nevidíš..nevíš jestli do toho stroje nějakou chybou nezaneseš něco co bys úplně nechtěl...
4. Napiš si parser, ideálně nějakej co používá rekurzi, bude výkonej, budeš rozumět tomu co se tam děje...
Špatný je, že ti to zabere dost času, a není to triviální...
Doufám, že jsem pokryl dostatečnou škálu na to aby sis udělal obrázek.
Mimochodem zapoměl jsem doplnit, že existuje i pár jiných možností, třeba kompilace - využití interního prostředí javy jako kompilátoru...dost obtížné! a samozřejmě nemusíš použít konkrétní scriptovací engine (klidně to může být groovy a ne javascript... nebo cokoliv) a nebo si zvol jinou knihovnu...slyšel jsem že v javě je zabudouvaný jexl .. nezkoušel jsem, ale asi taky použitelné
Je díky moc použil sem hned to první a stačí mi to díky moc
Zobrazeno 4 zpráv z 4.