MCPcopy Index your code
hub / github.com/BruceEckel/OnJava8-Examples / setField

Method setField

exceptions/DynamicFields.java:60–84  ·  view source on GitHub ↗
(String id, Object value)

Source from the content-addressed store, hash-verified

58 return fields[getFieldNumber(id)][1];
59 }
60 public Object setField(String id, Object value)
61 throws DynamicFieldsException {
62 if(value == null) {
63 // Most exceptions don't have a "cause"
64 // constructor. In these cases you must use
65 // initCause(), available in all
66 // Throwable subclasses.
67 DynamicFieldsException dfe =
68 new DynamicFieldsException();
69 dfe.initCause(new NullPointerException());
70 throw dfe;
71 }
72 int fieldNumber = hasField(id);
73 if(fieldNumber == -1)
74 fieldNumber = makeField(id);
75 Object result = null;
76 try {
77 result = getField(id); // Get old value
78 } catch(NoSuchFieldException e) {
79 // Use constructor that takes "cause":
80 throw new RuntimeException(e);
81 }
82 fields[fieldNumber][1] = value;
83 return result;
84 }
85 public static void main(String[] args) {
86 DynamicFields df = new DynamicFields(3);
87 System.out.println(df);

Callers 1

mainMethod · 0.95

Calls 3

hasFieldMethod · 0.95
makeFieldMethod · 0.95
getFieldMethod · 0.95

Tested by

no test coverage detected