diff --git a/java/src/com/swiftnav/sbp/SBPMessage.java b/java/src/com/swiftnav/sbp/SBPMessage.java index 7777be0fd5..cb6d8f2b0e 100644 --- a/java/src/com/swiftnav/sbp/SBPMessage.java +++ b/java/src/com/swiftnav/sbp/SBPMessage.java @@ -92,6 +92,7 @@ protected void build(Builder builder) { } /** There is no exposed access to this class outside of libsbp. */ + @SuppressWarnings("unchecked") public class Parser { private ByteBuffer buf; @@ -212,11 +213,11 @@ public T[] getArray(Class t) { LinkedList l = new LinkedList(); while (true) { try { - T tmp = t.newInstance(); + T tmp = t.getDeclaredConstructor().newInstance(); tmp.parse(this); l.add(tmp); } catch (BufferUnderflowException e) { - return (T[]) l.toArray((T[]) Array.newInstance(t, l.size())); + return l.toArray((T[]) Array.newInstance(t, l.size())); } catch (Exception e) { e.printStackTrace(); return null; @@ -228,7 +229,7 @@ public T[] getArray(Class t, int n) { T[] ret = (T[]) Array.newInstance(t, n); for (int i = 0; i < n; i++) { try { - ret[i] = t.newInstance(); + ret[i] = t.getDeclaredConstructor().newInstance(); ret[i].parse(this); } catch (Exception e) { e.printStackTrace(); diff --git a/java/src/com/swiftnav/sbp/SBPStruct.java b/java/src/com/swiftnav/sbp/SBPStruct.java index 7f8a3efa49..99f1f1f755 100644 --- a/java/src/com/swiftnav/sbp/SBPStruct.java +++ b/java/src/com/swiftnav/sbp/SBPStruct.java @@ -20,7 +20,7 @@ protected SBPStruct() {} protected abstract void build(SBPMessage.Builder builder); - protected abstract T parse(SBPMessage.Parser parser) throws SBPBinaryException; + protected abstract SBPStruct parse(SBPMessage.Parser parser) throws SBPBinaryException; protected abstract JSONObject toJSON(); diff --git a/java/src/com/swiftnav/sbp/client/SBPHandler.java b/java/src/com/swiftnav/sbp/client/SBPHandler.java index 0fd5a3c100..3f565ae2a6 100644 --- a/java/src/com/swiftnav/sbp/client/SBPHandler.java +++ b/java/src/com/swiftnav/sbp/client/SBPHandler.java @@ -116,11 +116,7 @@ public void addCallbackMulti(int[] ids, Reference cb) { public void removeCallback(SBPCallback cb) { synchronized (callbacks) { for (List> cblist : callbacks.values()) { - for (Reference ref : cblist) { - if (ref.get() == cb) { - cblist.remove(ref); - } - } + cblist.removeIf(ref -> ref.get() == cb); } strongCallbacks.remove(cb); } @@ -201,9 +197,7 @@ protected SBPMessage getNext() { if (msg != null) { return msg; } - continue; - } catch (InterruptedException e) { - continue; + } catch (InterruptedException ignored) { // NOSONAR } } // If we get here finished is set to true so there are no more messages available