在Java中编写实现_在运行时编写和实现新的Java类文件
是否可以通过某种方式将新的Java类“导入”到正在运行的程序中并加以利用?
我可以让一个程序创建一个类型为’.java’的新文件,然后将其包含在项目文件中并引用它,而不必重新启动该程序吗?
以下是我的意思的示例:
import java.io.*;
public class Program {
File JClass = new File("JClass.java");
public static BufferedWriter out = null;
public static void main(String[] args) {
try {
out = new BufferedWriter(new FileWriter("JClass.java"));
out.write("public abstract class JClass {");
out.newLine();
out.newLine();
out.write(" public void printSomething(String a) {");
out.newLine();
out.write(" System.out.println(a);");
out.newLine();
out.write(" }");
out.newLine();
out.write("}");
out.close();
} catch (IOException e)
{
System.exit(-1);
}
//Somehow import JClass.java as a class here
JClass.printSomething("Yay! It worked!");
}
}
生成的“ JClass.java”文件:
public abstract class JClass {
public void printSomething(String a) {
System.out.println(a);
}
}
同样,是否有可能创建项目源文件之一的副本,编辑文件中的代码,然后以某种方式强制对运行的程序进行更改?
在这一点上,我不太关心实际应用。我只是在探索与编程有关的不同想法。我也了解这可能会导致各种灾难。编辑正在运行的代码,并动态地包含类(我不认为会像构建项目时其他类一样检查错误),结果可能会非常难以预测。我只想尝试一下这个想法。
就是说,如果有人有任何有益的警告或需要注意的事情,我将不胜感激。否则,如果人们不回答“这是一个坏主意”或“有更简便,更好的解决问题的方法”,我将不胜感激。我不是要解决这个问题。我只是在探索这个想法。
那么,这可能吗?
在Java中编写实现_在运行时编写和实现新的Java类文件相关推荐
- java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...
本文已经收录自 https://github.com/Snailclimb/JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...
- java中编译类型的方法 和 运行时的类型方法 有什么区别
1:引言 这是在复习多态当中,看到不太理解的东西, 就是 Java编译类型和运行类型 2:多态 多态首先得是在 有继承关系和方法重写的类当中:指同一个方法在被调用时,由于对象不同则会有不同的效果(). ...
- java中动态输入_根据特定输入动态生成字符串的代码 - java
我想根据特定的输入动态生成字符串 如果输入= 1,则字符串输出= 00000 如果它= 10,则输出= 0000a 输入= 16,输出= 00010 等等 . 生成的字符串是从0到9的数字和从a到f的 ...
- java 打开gc日志_在运行时打开GC日志记录
java 打开gc日志 总是有下一个JVM表现不佳. 而且,您内心深知,如果您只有少数启动选项可以公开一些有关正在发生的事情的信息,那么您可能就有机会真正修复该死的东西. 但是不,您需要的标志( -X ...
- java方法第一次执行比较慢,为什么第一次在Java中调用方法时会出现运行时开销?...
我正在测量代码的执行时间,并在第一次调用方法时发现了一些奇怪的行为(来自main方法).这是我的代码,请看看这个 public static void main(String[] args) { tr ...
- java中的多态性_[转载] c++多态与java多态性_Java中的多态性
参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...
- 在java中使用quartz_如何在Java中使用Quartz Scheduler框架运行cron作业?
我在Java中使用Quartz Scheduler来运行cron作业 . 这是我第一次使用这个框架来运行cron作业,所以我有些困惑 . 我正在关注这个tutorial以更好地理解如何使用Quartz ...
- java中过滤流_第十四讲 Java中的字节流和过滤流
第十四讲Java中的字节流和过滤流 主要内容 InputStream和FileInputStream OutputStream和FileOutputStream 文件字节IO流应用举例 过滤流类和常用 ...
- java中^怎么用_^运算符在Java中做什么?
^(插入符号)运算符在Java中具有什么功能? 当我尝试这个: int a = 5^n; ...它给我: for n = 5, returns 0 for n = 4, returns 1 for n ...
最新文章
- 现身说法:37岁老码农找工作
- 在iOS端如何使用Charles用作http调试
- VScode 无法创建文件或者无法保存文件
- 手把手教你生成对抗网络 GAN,50 行代码玩转 GAN 模型!(附源码)
- 洛谷 P1101 单词方阵
- Oracke nls Parameters
- 自定义Realm实现认证
- python多线程执行其他模块的文件_python并发编程--进程线程--其他模块-从菜鸟到老鸟(三)...
- 关于scriptManager与JS代码兼容问题
- 下拉框输入模糊查询_RazorSQL for Mac(数据库工具查询)
- Struts2和hibernate框架整合实现简单的注册登陆功能
- android 设备注册,i2c_设备注册流程
- 回收站文件太多,永久删除时内存爆满直接黑屏解决方案
- 在Azure平台上使用托管卡进行身份认证
- mysql查找配置文件的顺序
- 访问ControlTemplate内部的元素
- 每日一题 PAT 甲级1001 格式化输出
- (转)常见的用户密码加密方式以及破解方法
- 流水灯c语言代码switch,单片机C语言入门之六switch case语句流水灯
- [黑金原创教程] FPGA那些事儿《设计篇 I》- 图像处理前夕
热门文章
- 在C#中将字符串转换为字节数组
- 从其他文件夹导入文件
- 有效电子邮件地址的最大长度是多少?
- vue 父循环怎么拿子循环中的值_Vue 父组件循环使用refs调用子组件方法出现undefined的问题...
- win11窗口拖动卡顿怎么办 Windows11窗口拖动卡顿的解决方法
- turtlebot3_teleop_key 键盘控制程序,使之0速度时不会一直发送 topic,通过topic代替键盘控制小车运动。
- Linux编程训练网站,OK6410汇编程序练习
- java 8 kafka 0.82,运行kafka-console-producer.sh的异常(0.8.1.1)
- cmd imp导入dmp文件_exp/imp、expdp/impdp使用总结,这些你都清楚吗?
- eclipse中birt插件使用_eclipse安装birt插件