public class Test2 {
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、增城ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的增城網(wǎng)站制作公司
public static void main(String[] args) throws Exception {
String s = "100";
int i = Integer.parseInt(s);
String s2 = String.valueOf(i);
System.out.println(s);
System.out.println(s2);
}
}
在javascript中eval()可以實(shí)現(xiàn)字符串轉(zhuǎn)代碼,java中需要使用動(dòng)態(tài)編譯。
把獲得的字符串寫入一個(gè)臨時(shí)文件中,然后編譯它,在調(diào)用其中的函數(shù)。
我們把要轉(zhuǎn)換的字符串構(gòu)造一個(gè)完整的類:如果方法是有返回值的.則:
public object eval(string str){
//生成java文件
string s = "class temp{";
s += "object rt(){"
s += "myclass mc = new myclass();"
s += " return mc."+str+"();";
s += "}"
s +="}";
file f = new file("temp.java");
printwriter pw = new printwriter(new filewriter(f));
pw.println(s);
pw.close();
//動(dòng)態(tài)編譯
com.sun.tools.javac.main javac = new com.sun.tools.javac.main();
string[] cpargs = new string[] {"-d", "所在目錄","temp.java"};
int status = javac.compile(cpargs);
if(status!=0){
system.out.println("沒有成功編譯源文件!");
return null;
}
//調(diào)用temp的rt方法返回結(jié)果:
myclassloader mc = new myclassloader();
class clasz = mc.loadclass("test.class",true);
method rt = clasz.getmethod("rt", new class[]{ string[].class });
return rt.invoke(null, new object[] { new string[0] });
//如果方法沒有返回就直接調(diào)用
}
我們可以先寫好多個(gè)重載的eval,有返回值和沒有返回值的.以及可以傳遞參數(shù)的.
這樣我們就可以用字符串轉(zhuǎn)換為java的語句來執(zhí)行.
方法是有的,但不全實(shí)際.
首先,你要理解,JAVA代碼的運(yùn)行是要被編譯成字節(jié)碼codebyte后才能被執(zhí)行的,以你問題中的意思,那個(gè)字符串應(yīng)該是在怎么代碼被編譯后項(xiàng)目在運(yùn)行時(shí),再傳入的參數(shù),這時(shí),要想把傳入?yún)?shù)的字符串當(dāng)成JAVA代碼來運(yùn)行,只有一種辦法,就是把傳進(jìn)來的字符串轉(zhuǎn)換成字節(jié)碼,并且,要虛擬加一個(gè)方法體出來.這也不是不可行,可用的技術(shù)有asm.cglib等字節(jié)碼技術(shù).但你想,對(duì)于你的問題.這樣有實(shí)際的意義嗎
你還不如,把system.out.print重定義成新的外調(diào)方法調(diào)動(dòng)來的清晰
您好,鑒于此問題,我將提供您如下的解決方案:
1、首先,加入如下 jar 文件到工程中:
??
2、編寫 java 代碼,進(jìn)行json 數(shù)據(jù)的轉(zhuǎn)換
?
3、控制臺(tái)輸出結(jié)果如下所示:
{"age":90,"houses":[],"id":1,"name":"liNing"}
User [age=90, houses=[], id=1, name=liiNing]
文章標(biāo)題:字符串轉(zhuǎn)成java代碼 字符轉(zhuǎn)換成字符串 Java
文章分享:http://www.muchs.cn/article36/doocgpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶體驗(yàn)、定制網(wǎng)站、網(wǎng)站建設(shè)、電子商務(wù)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)