<div dir="ltr"><div dir="ltr">Here's a Immutable Double List. Maybe code like this could improve immutability in X3DJSAIL? I don't know why it doesn't work with Float.<div><br>This, by my eyes, works. I just don't know what to do with floats, except copy stuff. Maybe we should be copying in the first place?<br><div><br></div></div><div>import java.util.ArrayList;<br>import java.util.List;<br>import java.util.Arrays;<br>import java.util.Collections;<br><br>public class NoModDoubleArray {<br> public static final double[] DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE = new double [] {-1f,-1f,1f,1f};<br> public final List<Double> NOMOD_FIELDOFVIEW_DEFAULT_VALUE;<br> public List<Double> MOD_FIELDOFVIEW;<br> public NoModDoubleArray() {<br> NOMOD_FIELDOFVIEW_DEFAULT_VALUE = Collections.unmodifiableList(Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new)));<br> MOD_FIELDOFVIEW = Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new));<br> System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);<br> try {<br> System.out.println("Setting immutable index 0 to 0.0");<br> NOMOD_FIELDOFVIEW_DEFAULT_VALUE.set(0, 0.0);<br> } catch (UnsupportedOperationException ex) {<br> ex.printStackTrace();<br> }<br> System.out.println("Setting double array index 0 to 0.0");<br> DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE[0] = 0.0;<br> System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);<br> System.out.println("Mutable Array "+MOD_FIELDOFVIEW);<br> System.out.println("Compare mutable to immutable "+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));<br> System.out.println("Setting mutable index 0 to 0.0");<br> MOD_FIELDOFVIEW.set(0, 0.0);<br> System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);<br> System.out.println("Mutable Array "+MOD_FIELDOFVIEW);<br> System.out.println("Compare mutable to immutable "+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));<br> System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);<br> }<br> public static void main(String[] args) {<br> new NoModDoubleArray();<br> }<br>}<br></div></div><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div>
</blockquote></div></div>