Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Java getter和setter的动态类型转换_Java_Spring_Spring Boot_Hibernate_Javabeans - Fatal编程技术网

Java getter和setter的动态类型转换

Java getter和setter的动态类型转换,java,spring,spring-boot,hibernate,javabeans,Java,Spring,Spring Boot,Hibernate,Javabeans,我需要一个问题的逻辑,假设我们有一个有50个属性的bean,其中包含getter和setter,当更新bean对象时,我必须编写许多getter和setter语句,我需要一个逻辑来获取和设置循环中的值。我知道我必须对它悲观,但悲观应该是动态的 简单地说,我需要一个接受任何类型对象和类型转换的方法来获得它的所有属性 class ExampleGetterSetter { public <T> T getSet(Object obj1, Object obj2) {

我需要一个问题的逻辑,假设我们有一个有50个属性的bean,其中包含getter和setter,当更新bean对象时,我必须编写许多getter和setter语句,我需要一个逻辑来获取和设置循环中的值。我知道我必须对它悲观,但悲观应该是动态的

简单地说,我需要一个接受任何类型对象和类型转换的方法来获得它的所有属性

class ExampleGetterSetter {

   public <T> T getSet(Object obj1, Object obj2) {
      // Object obj1, obj2 should be dynamically typecasted to get its properties,
      // I dont want to use instance of operator here
      // this will reduce great lines of code in my project
   }

}

我不明白你有什么问题。如果您有一个非常大的bean,并且希望在循环中设置它的属性,那么关键是数据源是什么

如果数据源是一个映射或条目列表,比如sturct数据,那么可以使用反射来迭代bean的属性,并使用反射来设置它

如果数据源是另一个bean,甚至是同一个bean,那么反射仍然是一种选择

事实上,有一个著名的图书馆可以帮助你做以上所有的事情

另一方面。如果您有一个非常大的bean,并且想要创建一个类似的bean,那么可以使用我的库。它是从另一个类生成类并在其中提供转换器方法的工具。比如说

class Bean {
   // many many properties.
}

@ViewOf(value = Bean.class, includePattern = ".*")
class BeanDtoConfiguration {
}
然后将生成这样一个类

class BeanView {
   // many properties same with Bean

   // the converter method.
   public static BeanView read(Bean bean) {
       ...
   }
}

看起来你在寻找反思:为什么你需要获取并设置所有这些值?闻起来你好像在重新创造一些已经存在的东西。使用龙目。