gpt4 book ai didi

java - Java 中的泛型方法 : "Object does not take parameters"

转载 作者:行者123 更新时间:2023-12-01 17:58:08 24 4
gpt4 key购买 nike

我想在类中创建一个通用方法,该方法采用给定类型对象的数组并对它们进行排序以返回包含最小数组项和最大数组项的对对象。

目前我收到 3 个编译器错误:

  • 类型对象不带参数:public <FirstType> Pair sortMinMax(Object<FirstType>[] array)
  • 类型对象不带参数:Object<FirstType> minimum = array[0]
  • 类型对象不带参数:Object<FirstType> maximum = array[0]

这是我的类(class):

public class MinMaxArray {

// takes an array of a given object and returns a pair
// of the min and max array elements
public <FirstType> Pair sortMinMax(Object<FirstType>[] array) {
Object<FirstType> minimum = array[0];
Object<FirstType> maximum = array[0];

// loop through all array items and perform sort
for (int counter = 1; counter < array.length; counter++) {
// if this element is less than current min, set as min
// else if this element is greater than current max, set as max
if (array[counter].compareTo(minimum) < 0) {
minimum = array[counter];
} else if (array[counter].comparTo(maximum) > 0) {
maximum = array[counter];
} // end if else new min, max
} // end for (all array items)

return new Pair<FirstType, FirstType>(minimum, maximum);
} // end compare()

} // end MinMaxArray

最佳答案

首先,避免引用数组。它们与泛型不能很好地配合。请改用List

我不清楚您是否打算将 FirstType 用作类型或泛型参数(通常会给出单个字母名称)。

如果 FirstType 是一个类型

public static Pair<FirstType,FirstType> sortMinMax(List<FirstType> things) {

如果您指的是通用参数,请查看java.util.Collections.sort

public static <T extends Comparable<? super T>> void sort(List<T> list) {

所以

public static <T extends Comparable<? super T>> Pair<T,T> sortMinMax(List<T> list) {

关于java - Java 中的泛型方法 : "Object does not take parameters",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com