Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向JavaBean动态添加变量_Java - Fatal编程技术网

向JavaBean动态添加变量

向JavaBean动态添加变量,java,Java,是否有一种基于DB表列名和关联数据动态构建JavaBean的方法?例如,如果我得到一个db表中的5列,我需要创建一个javaBean,将这5列名称作为变量,并使用它们的getter/setter。下一次,如果我得到7列,我可以创建一个包含7个变量的javaBean。我不相信可以有一个包含变量字段的对象,但是可以使用映射来存储结果。这可能与您想要的最接近。我不相信您可以拥有具有可变字段的对象,但您可以使用贴图来存储结果。这可能是最接近您想要的。它不一定是“动态”bean,您可以使用Map变量,如H

是否有一种基于DB表列名和关联数据动态构建JavaBean的方法?例如,如果我得到一个db表中的5列,我需要创建一个javaBean,将这5列名称作为变量,并使用它们的getter/setter。下一次,如果我得到7列,我可以创建一个包含7个变量的javaBean。

我不相信可以有一个包含变量字段的对象,但是可以使用映射来存储结果。这可能与您想要的最接近。

我不相信您可以拥有具有可变字段的对象,但您可以使用贴图来存储结果。这可能是最接近您想要的。

它不一定是“动态”bean,您可以使用Map变量,如
HashMap
。这没什么错

Map<String,Object> results = new HashMap<String,Object>();
// .. fill results ...
// .. then
Object someData = results.get("someDataKey");
Map results=newhashmap();
// .. 填写结果。。。
// .. 然后
objectsomedata=results.get(“someDataKey”);

它不必是“动态”bean,您可以使用Map变量,比如
HashMap
。这没什么错

Map<String,Object> results = new HashMap<String,Object>();
// .. fill results ...
// .. then
Object someData = results.get("someDataKey");
Map results=newhashmap();
// .. 填写结果。。。
// .. 然后
objectsomedata=results.get(“someDataKey”);

我认为可以通过字节码操作来实现这一点

2个主要图书馆是:

  • javassist-
  • asm-

    • 我认为可以通过字节码操作来实现这一点

      2个主要图书馆是:

      • javassist-
      • asm-

      答案是否定的。您不能在运行时询问变量。你能做的就是

      Map<String, Map> results = new HashMap<String, Map>();
      // Associate each column with a new map and put it in results.
      // Take each variable from column and associate it with the corresponding column's hashmap.
      
      Map results=newhashmap();
      //将每列与新映射关联,并将其放入结果中。
      //从列中获取每个变量,并将其与相应列的hashmap相关联。
      
      答案是否定的。您不能在运行时询问变量。你能做的就是

      Map<String, Map> results = new HashMap<String, Map>();
      // Associate each column with a new map and put it in results.
      // Take each variable from column and associate it with the corresponding column's hashmap.
      
      Map results=newhashmap();
      //将每列与新映射关联,并将其放入结果中。
      //从列中获取每个变量,并将其与相应列的hashmap相关联。
      
      您可以使用:

      DynaBean是一个Java对象,它支持可以动态修改其名称、数据类型以及值的属性。BeanUtils包的其他组件将尽可能地识别这些bean,并将它们作为标准JavaBeans处理,以便检索和设置属性值。

      您可以使用:


      DynaBean是一个Java对象,它支持可以动态修改其名称、数据类型以及值的属性。尽可能地,BeanUtils包的其他组件将识别这些bean,并将它们作为标准JavaBeans处理,以便检索和设置属性值。

      谢谢Eivind。我希望在不使用map的情况下完成这项工作。。我想把这些bean对象发送到AdobeFlexFramework,你可以看看这个类似问题的答案。谢谢Eivind。我希望这件事不用map就可以完成。。我想将这些bean对象发送到Adobe Flex Framework。您可以查看类似问题的答案。您的意思是:Java bean自动与数据库表同步?您的意思是:Java bean自动与数据库表同步?这是最好的解决方案,但非常复杂;)这是最好的解决方案,但非常复杂;)