MCPcopy Create free account
hub / github.com/ReadyTalk/avian / set

Method set

classpath/java/lang/reflect/Field.java:202–263  ·  view source on GitHub ↗
(Object instance, Object value)

Source from the content-addressed store, hash-verified

200 }
201
202 public void set(Object instance, Object value)
203 throws IllegalAccessException
204 {
205 Object target;
206 if ((vmField.flags & Modifier.STATIC) != 0) {
207 target = vmField.class_.staticTable;
208 } else if (Class.isInstance(vmField.class_, instance)) {
209 target = instance;
210 } else {
211 throw new IllegalArgumentException();
212 }
213
214 if (! matchType(value)) {
215 throw new IllegalArgumentException();
216 }
217
218 Classes.initialize(vmField.class_);
219
220 switch (vmField.code) {
221 case ByteField:
222 setPrimitive(target, vmField.code, vmField.offset, (Byte) value);
223 break;
224
225 case BooleanField:
226 setPrimitive
227 (target, vmField.code, vmField.offset, ((Boolean) value) ? 1 : 0);
228 break;
229
230 case CharField:
231 setPrimitive(target, vmField.code, vmField.offset, (Character) value);
232 break;
233
234 case ShortField:
235 setPrimitive(target, vmField.code, vmField.offset, (Short) value);
236 break;
237
238 case IntField:
239 setPrimitive(target, vmField.code, vmField.offset, (Integer) value);
240 break;
241
242 case LongField:
243 setPrimitive(target, vmField.code, vmField.offset, (Long) value);
244 break;
245
246 case FloatField:
247 setPrimitive(target, vmField.code, vmField.offset,
248 Float.floatToRawIntBits((Float) value));
249 break;
250
251 case DoubleField:
252 setPrimitive(target, vmField.code, vmField.offset,
253 Double.doubleToRawLongBits((Double) value));
254 break;
255
256 case ObjectField:
257 setObject(target, vmField.offset, value);
258 break;
259

Callers 8

setByteMethod · 0.95
setBooleanMethod · 0.95
setCharMethod · 0.95
setShortMethod · 0.95
setIntMethod · 0.95
setLongMethod · 0.95
setFloatMethod · 0.95
setDoubleMethod · 0.95

Calls 10

isInstanceMethod · 0.95
matchTypeMethod · 0.95
initializeMethod · 0.95
setPrimitiveMethod · 0.95
floatToRawIntBitsMethod · 0.95
doubleToRawLongBitsMethod · 0.95
setObjectMethod · 0.95
getTypeMethod · 0.95
getNameMethod · 0.95
getNameMethod · 0.95

Tested by

no test coverage detected