【问题标题】:How to add properties functions to objects from another class in Java?如何将属性函数添加到 Java 中另一个类的对象?
【发布时间】:2021-12-09 05:06:15
【问题描述】:

在 Javascript 中我们可以定义这样的对象 ????

let obj={
    property1:67,
    func1: function (){
        //Some code
    }
}

现在,如果我们想向obj 添加一个新属性,我可以像这样添加一个新属性

obj.property2=733; //some value or function

现在我也想在 Java 中做同样的事情。

我有一个班级考试??????

public class Test{
    int property1=67;
    public void func1(){
        //Some code
    }
}

现在是否可以像 Java 中的语句 #2 一样做同样的事情?

编辑: 从答案中我知道我们可以使用 Map 作为属性。 现在我想知道方法。 谢谢

【问题讨论】:

  • 这能回答你的问题吗? Create Fields and methods dynamically
  • 我不仅想添加这样的属性,还想添加方法。
  • 在java中不可能做到这一点,可能是通过改变不推荐的字节码。

标签: javascript java object properties


【解决方案1】:

所以我做了一个研究,我发现这并不简单。

在java中你不能这样做,实际上,如果你提供你自己的自定义类加载,你可以这样做,这确实是一个坏主意,因为即使你改变你想要的类,你也必须重新加载与这个类交互的所有类.

查看this article 以了解有关类加载器的更多信息。

当然,还有一些其他的方法如:

  • ASM 一个通用的 Java 字节码操作和分析框架。

  • Javassist 用于在 Java 中编辑字节码的库

  • AspectJ 面向方面的 Java 扩展,主要用于清理横切关注点的模块化

【讨论】:

  • 谢谢,我一定会去看看的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2022-07-21
  • 2015-11-15
  • 2022-06-29
  • 2021-03-24
  • 2019-10-01
  • 1970-01-01
相关资源
最近更新 更多