Home / Function/ beanPropertiesPreferMatchingType() — spring-boot Function Reference

beanPropertiesPreferMatchingType() — spring-boot Function Reference

Architecture documentation for the beanPropertiesPreferMatchingType() function in JavaBeanBinderTests.java from the spring-boot codebase.

Entity Profile

Dependency Diagram

graph TD
  568574e5_a385_d42d_8ae0_837b89516030["beanPropertiesPreferMatchingType()"]
  27c68f3d_4a99_f60a_533b_3cb6bc076b9d["equals()"]
  568574e5_a385_d42d_8ae0_837b89516030 -->|calls| 27c68f3d_4a99_f60a_533b_3cb6bc076b9d
  8d8ef66e_fc29_736c_c815_846df9fa8305["getType()"]
  568574e5_a385_d42d_8ae0_837b89516030 -->|calls| 8d8ef66e_fc29_736c_c815_846df9fa8305
  241955c1_e7fb_47f5_5e8e_e359b477a0ed["get()"]
  568574e5_a385_d42d_8ae0_837b89516030 -->|calls| 241955c1_e7fb_47f5_5e8e_e359b477a0ed
  84c4801c_c236_d53f_dcf3_809ec1a1b664["getName()"]
  568574e5_a385_d42d_8ae0_837b89516030 -->|calls| 84c4801c_c236_d53f_dcf3_809ec1a1b664
  style 568574e5_a385_d42d_8ae0_837b89516030 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

core/spring-boot/src/test/java/org/springframework/boot/context/properties/bind/JavaBeanBinderTests.java lines 530–568

	@Test
	void beanPropertiesPreferMatchingType() {
		// gh-16206
		ResolvableType type = ResolvableType.forClass(PropertyWithOverloadedSetter.class);
		Class<?> resolvedType = type.resolve();
		assertThat(resolvedType).isNotNull();
		Bean<PropertyWithOverloadedSetter> bean = new Bean<>(type, resolvedType) {

			@Override
			protected void addProperties(Method[] declaredMethods, Field[] declaredFields) {
				// We override here because we need a specific order of the declared
				// methods and the JVM doesn't give us one
				int intSetter = -1;
				int stringSetter = -1;
				for (int i = 0; i < declaredMethods.length; i++) {
					Method method = declaredMethods[i];
					if (method.getName().equals("setProperty")) {
						if (method.getParameters()[0].getType().equals(int.class)) {
							intSetter = i;
						}
						else {
							stringSetter = i;
						}
					}
				}
				if (intSetter > stringSetter) {
					Method method = declaredMethods[intSetter];
					declaredMethods[intSetter] = declaredMethods[stringSetter];
					declaredMethods[stringSetter] = method;
				}
				super.addProperties(declaredMethods, declaredFields);
			}

		};
		BeanProperty property = bean.getProperties().get("property");
		assertThat(property).isNotNull();
		PropertyWithOverloadedSetter target = new PropertyWithOverloadedSetter();
		property.setValue(() -> target, "some string");
	}

Domain

Subdomains

Frequently Asked Questions

What does beanPropertiesPreferMatchingType() do?
beanPropertiesPreferMatchingType() is a function in the spring-boot codebase.
What does beanPropertiesPreferMatchingType() call?
beanPropertiesPreferMatchingType() calls 4 function(s): equals, get, getName, getType.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free