@@ -98,6 +98,30 @@ public boolean has(String key) {
9898 return entries .containsKey (key );
9999 }
100100
101+ public boolean hasString (String key ) {
102+ return has (key ) && get (key ).isString ();
103+ }
104+
105+ public boolean hasNumber (String key ) {
106+ return has (key ) && get (key ).isNumber ();
107+ }
108+
109+ public boolean hasBoolean (String key ) {
110+ return has (key ) && get (key ).isBoolean ();
111+ }
112+
113+ public boolean hasPrimitive (String key ) {
114+ return has (key ) && get (key ).isPrimitive ();
115+ }
116+
117+ public boolean hasObject (String key ) {
118+ return has (key ) && get (key ).isObject ();
119+ }
120+
121+ public boolean hasArray (String key ) {
122+ return has (key ) && get (key ).isArray ();
123+ }
124+
101125 public int size () {
102126 return entries .size ();
103127 }
@@ -113,47 +137,47 @@ public AbstractArray array() {
113137 }
114138
115139 public AbstractObject object (String key ) {
116- return query (key ).object ();
140+ return query (key , AbstractNull . INSTANCE ).object ();
117141 }
118142
119143 public AbstractObject object (String key , AbstractObject orElse ) {
120144 return query (key , orElse ).object ();
121145 }
122146
123147 public AbstractArray array (String key ) {
124- return query (key ).array ();
148+ return query (key , AbstractNull . INSTANCE ).array ();
125149 }
126150
127151 public AbstractArray array (String key , AbstractArray orElse ) {
128152 return query (key , orElse ).array ();
129153 }
130154
131155 public AbstractPrimitive primitive (String key ) {
132- return query (key ).primitive ();
156+ return query (key , AbstractNull . INSTANCE ).primitive ();
133157 }
134158
135159 public AbstractPrimitive primitive (String key , AbstractPrimitive orElse ) {
136160 return query (key , orElse ).primitive ();
137161 }
138162
139163 public String string (String key ) {
140- return query (key ).string ();
164+ return query (key , AbstractNull . INSTANCE ).string ();
141165 }
142166
143167 public String string (String key , String orElse ) {
144168 return query (key , new AbstractPrimitive (orElse )).string ();
145169 }
146170
147171 public Boolean bool (String key ) {
148- return query (key ).bool ();
172+ return query (key , AbstractNull . INSTANCE ).bool ();
149173 }
150174
151175 public Boolean bool (String key , Boolean orElse ) {
152176 return query (key , new AbstractPrimitive (orElse )).bool ();
153177 }
154178
155179 public Number number (String key ) {
156- return query (key ).number ();
180+ return query (key , AbstractNull . INSTANCE ).number ();
157181 }
158182
159183 public Number number (String key , Number orElse ) {
0 commit comments