相关疑难解决方法(0)

Scala List [Int]在Java中成为List <Object>

我在Scala对象中定义了以下列表:

object Foo {
    val bar = List(1, 2, 3)
}
Run Code Online (Sandbox Code Playgroud)

scala.collection.immutable.List<Object>当我尝试从Java使用它时,这似乎已成为一种情况。结果,我必须使用类似getter Foo.bar().apply$mcII$sp(i)apply将其强制转换为Integer/ int

为什么是泛型Object而不是Integer?对于以Java原语存在的类型,似乎也只有这种情况。List[MyType]进入List<MyType>Scala。

java scala

5
推荐指数
1
解决办法
177
查看次数

如何通过不允许java中的泛型原语来维护向后兼容性

我知道Java不允许在泛型中使用原始数据类型,即

List<int> l  = new List<int>();
Run Code Online (Sandbox Code Playgroud)

不被允许.

我已阅读一篇相关文章,其中指出这是为了向后兼容.任何人都可以解释如何不允许在泛型中使用原语保持向后兼容性?我非常感谢一个例子的小解释.

一个子问题:在java中如何实现泛型的主要/次要缺点是什么.

非常感谢您的回复.

java generics backwards-compatibility

4
推荐指数
1
解决办法
424
查看次数

为什么这些在Java中无效?

List<Object> myList = new ArrayList<String>(); //(hint: no)
Map<Integer> myMap = new HashMap<int>(); // (hint: also no)
Run Code Online (Sandbox Code Playgroud)

为什么上述声明中的陈述有误?

java

3
推荐指数
3
解决办法
300
查看次数

尝试使用string作为键和double作为值在java中创建哈希表

在以下程序中:

import java.util.*;

public class HashTableStringdouble
{
//  private Hashtable<String, double[]> model  = new Hashtable<String, double[]>();;
    private Hashtable<String, double> model  = new Hashtable<String, double>();;                // this does not work

    public static void main(String args[])
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

有双[]但不是双倍.它给出以下错误:

HashTableStringdouble.java:7:错误:意外类型private Hashtable model = new Hashtable();; //这不起作用^ required:reference found:double HashTableStringdouble.java:7:error:unexpected type private Hashtable model = new Hashtable();; //这不起作用^必需:引用找到:double 2错误

我不确定我在这里做错了什么.请解释一下Hashtable的工作原理.

java string double hashtable

3
推荐指数
2
解决办法
8177
查看次数

Java Stream Collectors.toList()不会编译

任何人都可以解释为什么下面的代码不能编译但第二个代码呢?

不要编译

private void doNotCompile() {

    List<Integer> out;
    out = IntStream
            .range(1, 10)
            .filter(e -> e % 2 == 0)
            .map(e -> Integer.valueOf(2 * e))
            .collect(Collectors.toList());

    System.out.println(out);
}
Run Code Online (Sandbox Code Playgroud)

收集行上的编译错误

  • IntStream类型中的方法collect(Supplier,ObjIntConsumer,BiConsumer)不适用于参数(Collector>)
  • 类型不匹配:无法从收集器>转换为供应商

编译

private void compiles() {
    List<Integer> in;

    in = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
    List<Integer> out;
    out = in.stream()
            .filter(e -> e % 2 == 0)
            .map(e -> 2 * e)
            .collect(Collectors.toList());

    System.out.println(out);
}
Run Code Online (Sandbox Code Playgroud)

java java-stream collectors

3
推荐指数
1
解决办法
1565
查看次数

为什么 array.sort 不能通过这样的数组工作?

我大约 2 周前才开始编程,所以请不要太严格:)

我试图解决一个编程练习来打印数组的 3 个最大元素,但是 .sort 方法

报告错误,我不知道为什么。似乎我以错误的方式声明了我的数组,但我无法发现错误。

public static void main(String[] args) {
    int [] elements = {1, 4, 17, 7, 25, 3, 100};
    int k = 3;
    System.out.println("Original Array: ");
    System.out.println(Arrays.toString(elements));
    System.out.println(k +" largest elements of the said array are:");
    Arrays.sort(elements, Collections.reverseOrder());         
   for (int i = 0; i < k; i++) 
      System.out.print(elements[i] + " ");
}
Run Code Online (Sandbox Code Playgroud)

}

java arrays

3
推荐指数
1
解决办法
84
查看次数

通用方法不适用于'int'类型变量?

我在使用两个变量时遇到了一些麻烦:int和Integer.它们大致相同,但(如下面的代码所示)它们并不总是相同.这是我的问题:这段代码非常完美.我已经取得了一个通用的方法,其中printArray需要任何类型的变量的阵列(因为它是通用的)才能工作.这里我使用变量类型Integer.但是,当我改变我的类型数组"getal"的为int(而不是整数),该方法printArray不起作用annymore.这是为什么?泛型方法不适用于int类型变量吗?

package Oefenen;

public class printArray
{
    public static void main (String args[])
    {
        Integer[] getal = {10, 20, 30, 40, 50};
        printArray(getal);  
    }

    public static <E> void printArray (E[] intArray)
    {
        for (E element : intArray)
        {   
            System.out.printf("%s\n", element);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ps:如果我将泛型方法更改为仅用于int的方法,它确实有效.所以我认为问题是:通用方法不适用于int.我

java generics int

2
推荐指数
2
解决办法
2121
查看次数

Java源代码中的通用编程

Arrays和Collections是所有java程序员使用的两个基本api类.这两个类都是在Java 1.2中添加的

查看Arrays类,有27个重载的binarysearch方法,它没有使用Generics,因为集合被更新为使用泛型.Collections类有2个重载二进制搜索方法.

为什么这样做或者我错过了什么?

java generics api

2
推荐指数
1
解决办法
134
查看次数

为什么原语不能存储在Java集合中,而原始数组可以存储?

List<int> list; //compile-time error
List<int[]> list1; //works fine
Run Code Online (Sandbox Code Playgroud)

这种行为有什么理由吗?我知道原语需要加框,但为什么不是原始数组呢?

java

1
推荐指数
1
解决办法
94
查看次数

它是JDK的错误吗?

这个代码抛出

线程"main"中的异常java.lang.ArrayIndexOutOfBoundsException:1

在最后一行.是bug还是什么?(JDK 7)

int ar[] = {1,2,3};
List arList = Arrays.asList(ar);
arList.set(1,8);
Run Code Online (Sandbox Code Playgroud)

java runtime-error indexoutofboundsexception

0
推荐指数
1
解决办法
168
查看次数

Java自动装箱和拆箱

我试图转换和数组int到List然而每次我尝试我得到编译错误.

   List<Integer> integers = toList(draw.getToto6From49().getFirstRound());

// getFirstRound() returns int[] ; 
Run Code Online (Sandbox Code Playgroud)

这是我的toList方法

public class ArraysUtil {


 public static <T> List<T> toList(T[] ts) {
  List<T> ts1 = new ArrayList<>();
  Collections.addAll(ts1, ts);
  return ts1;
 }
}
Run Code Online (Sandbox Code Playgroud)

java:com.totoplay.util.ArraysUtil类中的方法toList不能应用于给定的类型;

  required: T[]
  found: int[]
  reason: inferred type does not conform to declared bound(s)
    inferred: int
    bound(s): java.lang.Object
Run Code Online (Sandbox Code Playgroud)

java generics

0
推荐指数
1
解决办法
264
查看次数

使用long类型的键和long类型为hash的值创建一个hashmap

到目前为止,我尝试了以下代码,但它不起作用.

HashMap<long, HashSet<long>> hm = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

我知道原因很长,不参考,我们需要参考类型.任何评论都非常感谢.

java

0
推荐指数
1
解决办法
1094
查看次数

-6
推荐指数
1
解决办法
101
查看次数