comparison src/luan/lib/JavaLib.java @ 100:6c827f7275df

fix JavaLib.setMember() for int conversion git-svn-id: https://luan-java.googlecode.com/svn/trunk@101 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 11 Apr 2013 21:03:54 +0000
parents b1e87f1bcc13
children 90b918cbf888
comparison
equal deleted inserted replaced
99:b19988270d74 100:6c827f7275df
191 } 191 }
192 192
193 private static void setMember(Object obj,List<Member> members,Object value) { 193 private static void setMember(Object obj,List<Member> members,Object value) {
194 Field field = (Field)members.get(0); 194 Field field = (Field)members.get(0);
195 try { 195 try {
196 field.set(obj,value); 196 try {
197 field.set(obj,value);
198 } catch(IllegalArgumentException e) {
199 Class cls = field.getType();
200 if( value instanceof Number ) {
201 Number n = (Number)value;
202 if( cls.equals(Integer.TYPE) || cls.equals(Integer.class) ) {
203 int r = n.intValue();
204 if( r==n.doubleValue() ) {
205 field.setInt(obj,r);
206 return;
207 }
208 }
209 }
210 throw e;
211 }
197 } catch(IllegalAccessException e) { 212 } catch(IllegalAccessException e) {
198 throw new RuntimeException(e); 213 throw new RuntimeException(e);
199 } 214 }
200 } 215 }
201 216