是否可以通过某种方式将新的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类文件相关推荐

  1. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  2. java中编译类型的方法 和 运行时的类型方法 有什么区别

    1:引言 这是在复习多态当中,看到不太理解的东西, 就是 Java编译类型和运行类型 2:多态 多态首先得是在 有继承关系和方法重写的类当中:指同一个方法在被调用时,由于对象不同则会有不同的效果(). ...

  3. java中动态输入_根据特定输入动态生成字符串的代码 - java

    我想根据特定的输入动态生成字符串 如果输入= 1,则字符串输出= 00000 如果它= 10,则输出= 0000a 输入= 16,输出= 00010 等等 . 生成的字符串是从0到9的数字和从a到f的 ...

  4. java 打开gc日志_在运行时打开GC日志记录

    java 打开gc日志 总是有下一个JVM表现不佳. 而且,您内心深知,如果您只有少数启动选项可以公开一些有关正在发生的事情的信息,那么您可能就有机会真正修复该死的东西. 但是不,您需要的标志( -X ...

  5. java方法第一次执行比较慢,为什么第一次在Java中调用方法时会出现运行时开销?...

    我正在测量代码的执行时间,并在第一次调用方法时发现了一些奇怪的行为(来自main方法).这是我的代码,请看看这个 public static void main(String[] args) { tr ...

  6. java中的多态性_[转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  7. 在java中使用quartz_如何在Java中使用Quartz Scheduler框架运行cron作业?

    我在Java中使用Quartz Scheduler来运行cron作业 . 这是我第一次使用这个框架来运行cron作业,所以我有些困惑 . 我正在关注这个tutorial以更好地理解如何使用Quartz ...

  8. java中过滤流_第十四讲 Java中的字节流和过滤流

    第十四讲Java中的字节流和过滤流 主要内容 InputStream和FileInputStream OutputStream和FileOutputStream 文件字节IO流应用举例 过滤流类和常用 ...

  9. java中^怎么用_^运算符在Java中做什么?

    ^(插入符号)运算符在Java中具有什么功能? 当我尝试这个: int a = 5^n; ...它给我: for n = 5, returns 0 for n = 4, returns 1 for n ...

最新文章

  1. 现身说法:37岁老码农找工作
  2. 在iOS端如何使用Charles用作http调试
  3. VScode 无法创建文件或者无法保存文件
  4. 手把手教你生成对抗网络 GAN,50 行代码玩转 GAN 模型!(附源码)
  5. 洛谷 P1101 单词方阵
  6. Oracke nls Parameters
  7. 自定义Realm实现认证
  8. python多线程执行其他模块的文件_python并发编程--进程线程--其他模块-从菜鸟到老鸟(三)...
  9. 关于scriptManager与JS代码兼容问题
  10. 下拉框输入模糊查询_RazorSQL for Mac(数据库工具查询)
  11. Struts2和hibernate框架整合实现简单的注册登陆功能
  12. android 设备注册,i2c_设备注册流程
  13. 回收站文件太多,永久删除时内存爆满直接黑屏解决方案
  14. 在Azure平台上使用托管卡进行身份认证
  15. mysql查找配置文件的顺序
  16. 访问ControlTemplate内部的元素
  17. 每日一题 PAT 甲级1001 格式化输出
  18. (转)常见的用户密码加密方式以及破解方法
  19. 流水灯c语言代码switch,单片机C语言入门之六switch case语句流水灯
  20. [黑金原创教程] FPGA那些事儿《设计篇 I》- 图像处理前夕

热门文章

  1. 在C#中将字符串转换为字节数组
  2. 从其他文件夹导入文件
  3. 有效电子邮件地址的最大长度是多少?
  4. vue 父循环怎么拿子循环中的值_Vue 父组件循环使用refs调用子组件方法出现undefined的问题...
  5. win11窗口拖动卡顿怎么办 Windows11窗口拖动卡顿的解决方法
  6. turtlebot3_teleop_key 键盘控制程序,使之0速度时不会一直发送 topic,通过topic代替键盘控制小车运动。
  7. Linux编程训练网站,OK6410汇编程序练习
  8. java 8 kafka 0.82,运行kafka-console-producer.sh的异常(0.8.1.1)
  9. cmd imp导入dmp文件_exp/imp、expdp/impdp使用总结,这些你都清楚吗?
  10. eclipse中birt插件使用_eclipse安装birt插件