Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 4.43 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. What is wrong with using a primitive array as an actual type parameter in Java 5?
  2. import java.util.*;
  3. public class A {
  4.    public static void main(String[] args) {
  5.      List<float[]> list = Arrays.asList(new float[1], new float[3]);
  6.      float[] key = new float[2];
  7.      int index = Collections.binarySearch(list, key, new Comparator<float[]>() {
  8.         public int compare(float[] f1, float[] f2) {
  9.            return f1.length - f2.length;
  10.         }
  11.      });
  12.      System.out.println(index);
  13.    }
  14. }
  15.        
  16. C:UsersmravnDesktop>"c:Program FilesJavajdk1.5.0_22"binjavac A.java
  17. A.java:4: incompatible types
  18. found   : java.util.List<<nulltype>[]>
  19. required: java.util.List<float[]>
  20.        List<float[]> list = Arrays.asList(new float[1], new float[3]);
  21.                                        ^
  22. A.java:6: cannot find symbol
  23. symbol  : method binarySearch(java.util.List<float[]>,float[],<anonymous java.util.Comparator<float[]>>)
  24. location: class java.util.Collections
  25.      int index = Collections.binarySearch(list, key, new Comparator<float[]>() {
  26.                             ^
  27. 2 errors
  28.  
  29. C:UsersmravnDesktop>
  30.        
  31. System.out.println(Arrays.asList(new float[1]).size());
  32.        
  33. System.out.println(Arrays.asList(new float[1], new float[3]).size());
  34.        
  35. An exception has occurred in the compiler (1.5.0_22). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.
  36. java.lang.AssertionError: unexpected type: <nulltype>
  37.         at com.sun.tools.javac.tree.TreeMaker.Type(TreeMaker.java:531)
  38.         at com.sun.tools.javac.tree.TreeMaker.Type(TreeMaker.java:525)
  39.         at com.sun.tools.javac.comp.Lower.boxArgs(Lower.java:2510)
  40.         at com.sun.tools.javac.comp.Lower.visitApply(Lower.java:2420)
  41.         at com.sun.tools.javac.tree.Tree$Apply.accept(Tree.java:813)
  42.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  43.         at com.sun.tools.javac.comp.Lower.visitSelect(Lower.java:3019)
  44.         at com.sun.tools.javac.tree.Tree$Select.accept(Tree.java:987)
  45.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  46.         at com.sun.tools.javac.comp.Lower.visitApply(Lower.java:2474)
  47.         at com.sun.tools.javac.tree.Tree$Apply.accept(Tree.java:813)
  48.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  49.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1893)
  50.         at com.sun.tools.javac.comp.Lower.boxArgs(Lower.java:2517)
  51.         at com.sun.tools.javac.comp.Lower.visitApply(Lower.java:2420)
  52.         at com.sun.tools.javac.tree.Tree$Apply.accept(Tree.java:813)
  53.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  54.         at com.sun.tools.javac.tree.TreeTranslator.visitExec(TreeTranslator.java:227)
  55.         at com.sun.tools.javac.tree.Tree$Exec.accept(Tree.java:728)
  56.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  57.         at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:54)
  58.         at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:145)
  59.         at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:2933)
  60.         at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:535)
  61.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  62.         at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:129)
  63.         at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2267)
  64.         at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2186)
  65.         at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:478)
  66.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  67.         at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:1989)
  68.         at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:434)
  69.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
  70.         at com.sun.tools.javac.comp.Lower.translate(Lower.java:1901)
  71.         at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3070)
  72.         at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:487)
  73.         at com.sun.tools.javac.main.Main.compile(Main.java:592)
  74.        
  75. List<float[]> list=new ArrayList<float[]>();
  76. list.add(new float[] {0.0f});
  77. list.add(new float[] {1.0f});
  78.  
  79. float[] key = new float[2];
  80.  
  81. Comparator<float[]> c = new Comparator<float[]>() {
  82.     public int compare(float[] f1, float[] f2) {
  83.         return f1.length - f2.length;
  84.     }
  85. };