Mercurial Hosting > luan
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 |