рдЬрд╛рд╡рд╛ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЧреБрдг рдЬреЛрдбрд╝рдирд╛

рддреНрдпрд╛рдЧ


рдЙрдкрдХрд░рдг рдХреЛ рдЫреЛрдЯреЗ рд░рдХреНрдд рдХреЗ рдбрд┐рдЬрд╛рдЗрди рджреЛрд╖реЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред



рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдПрдХ рдордзреНрдпрдо рдЖрдпреБ рд╡рд░реНрдЧ рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╛рде рдПрдХ рджрд┐рди рдРрд╕рд╛ рд╣реБрдЖред рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреЛрдб рдмрд╣реБрдд рдЧрдбрд╝рдмрдбрд╝ рдерд╛, рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдпреЛрдЧреНрдпрддрд╛рдУрдВ рдХреЗ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд┐рд╢рд╛рди рд░рдЦрддрд╛ рдерд╛, рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдереЗред рдПрдХ рд╢рдмреНрдж рд╣реИ рд╡рд┐рд░рд╛рд╕рддред

рдЖрд╡реЗрджрди рдХреНрд▓рд╛рд╕рд┐рдХ рддреАрди-рдкрд░рдд рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:



рдФрд░ рд╕рднреА рд╕реНрддрд░реЛрдВ рдкрд░, рднрдВрдбрд╛рд░рдг рд╕реНрддрд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ (рдмрд╛рдж рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдпрд╛ JSP рдореЗрдВ рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ JSON рдХреЛ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдиреЗ рдпрд╛ JSP рдХреЛ рджрд┐рдпрд╛, рдпрджрд┐ рдпрд╣ рдХреБрдЫ рд╕рд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдерд╛, рддреЛ рдЕрддреНрдпрдВрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдерд╛ред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдХрдореА рдХреЗ рд▓рд┐рдПред



рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЦреАрдВрдЪреЗрдВ рдЬреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕реНрддрд░ рддрдХ рдирд╣реАрдВ рд╣реИрдВ?


рдореИрдВрдиреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреАред



рд╢реНрд░реЛрддрд╛ рдФрд░ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░реНрд╕


рд╢реНрд░реЛрддрд╛ рдФрд░ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдЖрдкрдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░рдг рд╕реНрддрд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдХрд╛ рднрдВрдбрд╛рд░рдг рд╕реНрддрд░ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред



рдорд╛рдирдЪрд┐рддреНрд░рдг


рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╕реЗрд╡рд╛ рд╕реНрддрд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рдПрдХ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реИ: рднрдВрдбрд╛рд░рдг рдкрд░рдд рдХреЛ рд╕рд╛рдл рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдХ рдкрд░рдд рдХреЛ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЖрд▓рд╕реА рд▓реЛрдб рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдкрд░ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рд╢рд┐рдлреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдкрдХреНрд╖ рд╕реЗ рдореИрдкрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред



рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЙрдХреНрд╕реА


рдереЛрдбрд╝рд╛ рд╕рд╛ рдЬрд╛рджреВ:

package ru.bdm.reflection; //some imports omitted import static junit.framework.Assert.assertEquals; import static org.apache.commons.beanutils.PropertyUtils.getProperty; public class PropertyJoinerTest { public static class AnyType { public Object getAnyProperty() { return "anyPropertyValue"; } } @Test public void testWithPropertyExtractor() throws Exception { PropertyJoiner propertyJoiner = new PropertyJoiner(new PropertyExtractor() { @Override public Object get(Object o, String property) { return property + "Value"; } }, "first", "second"); AnyType src = new AnyType(); AnyType dst = propertyJoiner.joinProperties(src); assertEquals("firstValue", getProperty(dst, "first")); assertEquals("secondValue", getProperty(dst, "second")); assertEquals("anyPropertyValue", getProperty(dst, "anyProperty")); } }
      
      





рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реИ?


рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдХреНрд╖рд╛рдПрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ:

 public interface FirstHolder{ Object getFirst(); } public interface SecondHolder{ Object getSecond(); }
      
      





рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреНрд▓рд╛рд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЬреЛ AnyType



рдЗрдирд╣реЗрд░рд┐рдЯ AnyType



рдФрд░ FirstHolder



рдФрд░ SecondHolder



рд▓рд╛рдЧреВ SecondHolder



ред

AnyType



рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП AnyType



, рдкреНрд░реЙрдХреНрд╕реА src



рдХреЛ SecondHolder



рд╣реИрдВ, FirstHolder



рдФрд░ SecondHolder



рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ PropertyExtractor



рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВред



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд┐рдирд╛, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдмрд╛рд╣рд░реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░рдг рд╕реНрддрд░ рдХреЗ рд╕рд╛рд░ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рджреГрд╢реНрдп рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред



рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢реБрд▓реНрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛: рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рддреНрдпрдХреНрд╖ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 150 рдЧреБрдирд╛ рдзреАрдореА рд╣реИред рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рднрд╛рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдерд╛, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо 50 рд╕рдВрд╕реНрдерд╛рдУрдВ (рдкреГрд╖реНрда рдЖрдХрд╛рд░) рдХреЛ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдиреБрдХрд╕рд╛рди рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдЙрдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЖрдк Google рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



All Articles