java 代码泛型问题这里输出
System.out.println(f);System.err.println(p);
为什么第二行是 System.err.printlnerr
而不是System.out.printlnout
这样可以么?
java字符串怎么转换为代码方法是有的,但不全实际.
首先,你要理解,JAVA代码的运行是要被编译成字节码codebyte后才能被执行的,以你问题中的意思,那个字符串应该是在怎么代码被编译后项目在运行时,再传入的参数,这时,要想把传入参数的字符串当成JAVA代码来运行,只有一种办法,就是把传进来的字符串转换成字节码,并且,要虚拟加一个方法体出来.这也不是不可行,可用的技术有asm.cglib等字节码技术.但你想,对于你的问题.这样有实际的意义吗
你还不如,把system.out.print重定义成新的外调方法调动来的清晰
java泛型问题代码如下://是这样吗?
public class FTestDraw {
public static void main(String[] args) {
DrawMethodShape dm = new DrawMethodShape(new Circle());
dm.shape.draw();
}
}
abstract class Shape{
abstract void draw();
}
class Circle extends Shape{
@Override
void draw() {
System.out.println("这是圆形");
}
}
class Rectangle extends Shape{
@Override
void draw(){
System.out.println("这是长方形");
}
}
class Triangle extends Shape{
@Override
void draw(){
System.out.println("这是三角形");
}
}
class DrawMethodT extends Shape{
T shape = null;
publicDrawMethod(T tt){
shape = tt;
}
}
java怎么把一段字符串当做代码来执行在javascript中eval()可以实现字符串转代码,java中需要使用动态编译 。
把获得的字符串写入一个临时文件中 , 然后编译它,在调用其中的函数 。
我们把要转换的字符串构造一个完整的类:如果方法是有返回值的.则:
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();
//动态编译
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;
}
//调用temp的rt方法返回结果:
myclassloader mc = new myclassloader();
class clasz = mc.loadclass("test.class",true);
【java字符串泛代码 java字符串equals】method rt = clasz.getmethod("rt", new class[]{ string[].class });
return rt.invoke(null, new object[] { new string[0] });
//如果方法没有返回就直接调用
}
我们可以先写好多个重载的eval,有返回值和没有返回值的.以及可以传递参数的.
这样我们就可以用字符串转换为java的语句来执行.
java字符串泛代码的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java字符串equals、java字符串泛代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 移动硬盘加密怎么关闭不了,移动硬盘加密后怎么取消
- 阿里云服务器cpu类型,阿里云服务器的参数详解
- bs架构开发JAVA代码 java bs架构
- 邮箱被激活注册不了公众号,公众号邮箱无法激活
- 显卡单侧风扇狂转怎么回事,显卡一侧风扇不转
- linux命令查找网站 linux查看网站路径
- 大雾天开什么灯安全视频,大雾天气应该开什么灯
- js循环很卡,js循环性能最快的
- js获取前一周,js获取一周前的开始时间和结束时间