java - list<bean>을 다른 bean의 목록으로 변환합니다.
PHP中文网
PHP中文网 2017-05-17 10:07:31
0
4
1043
으아악

다음과 유사한 작업이 필요합니다.

으아악

변환할 수 없는 유형을 보고하는 오류, DataBean은 내부 정적 클래스입니다.
C++에는 강제로 변환할 수 있는 reinterpret_cast가 있고, Java에는 해당 메소드가 있어야 합니다

PHP中文网
PHP中文网

认证0级讲师

모든 응답(4)
大家讲道理

Apache CommonsBeanUtilsBeanUtilsSpringBeanUtils 都有提供 copyProperties 方法,作用是将一个对象的属性的值赋值给另外一个对象,但前提是两个对象的属性类型且 名字 相同。

比如使用 Apache Commons 的 BeanUtils

import java.math.BigDecimal;
import org.apache.commons.beanutils.BeanUtils;

public class TestBeanUtils {

    public static void main(String[] args) throws Exception {

        ChartData src = new ChartData(1, BigDecimal.valueOf(123));
        DataBean dest = new DataBean();

        BeanUtils.copyProperties(dest, src);

        System.out.println(src);
        System.out.println(dest);
    }

    public static class DataBean {

        private int time;
        private BigDecimal result;

        public int getTime() {
            return time;
        }

        public void setTime(int time) {
            this.time = time;
        }

        public BigDecimal getResult() {
            return result;
        }

        public void setResult(BigDecimal result) {
            this.result = result;
        }

        @Override
        public String toString() {
            return "DataBean{" + "time=" + time + ", result=" + result + '}';
        }

    }

    public static class ChartData {

        private Integer time;
        private BigDecimal result;

        public ChartData(Integer time, BigDecimal result) {
            this.time = time;
            this.result = result;
        }

        public Integer getTime() {
            return time;
        }

        public BigDecimal getResult() {
            return result;
        }

        public void setTime(Integer time) {
            this.time = time;
        }

        public void setResult(BigDecimal result) {
            this.result = result;
        }

        @Override
        public String toString() {
            return "ChartData{" + "time=" + time + ", result=" + result + '}';
        }

    }

}


所以如果 ChartDataDataBeanSpring

BeanUtils는 모두 copyProperties를 제공합니다. code> 메소드는 한 객체의 속성 값을 다른 객체에 할당하는 데 사용되지만, 두 객체의 속성 유형과

name

은 동일하다는 전제가 있습니다. #🎜🎜# #🎜🎜#예를 들어 Apache Commons의 BeanUtils를 사용하세요. #🎜🎜# 으아아아 #🎜🎜# #🎜🎜# #🎜🎜#그래서 ChartDataDataBean의 속성 이름이 동일하다면 코드는 다음과 같이 작성할 수 있습니다. (각 속성에 대해 setter 메소드를 작성할 필요가 없습니다.) ): #🎜🎜# 으아아아 #🎜🎜# 물론 한 가지 주목할 점은 이것이 리플렉션을 사용하여 구현된다는 점입니다. 이는 setter 메서드를 직접 작성하는 것보다 효율성이 떨어집니다. #🎜🎜#
过去多啦不再A梦

으아악

迷茫

강제 이전은 상위 클래스에서 하위 클래스로만 가능합니다. 각 필드를 클릭하여 설정하세요.

阿神

원본 포스터는 Java 유형 변환을 배워야 합니다. 이러한 조건에서는 강제 이전이 불가능합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿